Path: csiph.com!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail From: "Peter Heitzer" Newsgroups: de.sci.electronics Subject: Re: Zeitmessung mit Arduino Date: 10 Jul 2017 08:24:13 GMT Lines: 24 Message-ID: References: <6na93e-ib4.ln1@nntp.haselbeck-net.de> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Trace: individual.net iM9TFsWG3u+S6CjlcG1zAQ9rF2oVZ7CX2DHUmZLjappiSljjAMINp4C5zG X-Orig-Path: not-for-mail Cancel-Lock: sha1:BHXiyq4/ZR7T02gjWJ+L/QIEK0g= User-Agent: tin/2.2.1-20140504 ("Tober an Righ") (UNIX) (Linux/3.16.0-4-amd64 (x86_64)) Xref: csiph.com de.sci.electronics:229697 Gregor Szaktilla wrote: >Am 09.07.2017 um 11:50 schrieb Rupert Haselbeck: >> Gregor Szaktilla schrieb: >>> Meine bisherigen Erfahrungen zeigen, dass selbst baugleiche Arduinos, >>> die vermutlich auch aus der selben Charge stammen, schon nach kurzer >>> Zeit deutlich asynchron laufen. >> Das ist sicherlich richtig. Aber welchen Einfluss sollte das auf das >> Messergebnis bei Tims Aufbau haben? >Eigentlich keinen, wenn man es nicht hochwissenschaftlich supergenau >nimmt. Ich wollte damit nur sagen, dass man sich bei Zeitmessungen nicht >darauf verlassen darf, dass zwei Arduinos absolut synchron ticken. Insbesondere, wenn man nur millies() betrachtet. Ich würde für genauere Messungen einen 16-Bit-Timer mit µs Taktung verwenden und beim 64K Überlauf in einer ISR eine 16-Bit-Variable inkrementieren. Das reicht für über eine Stunde mit µs Auflösung. Die Lichtschranke löst dann einen Capture Event aus. Die niederwertigen 16Bit kommen direkt aus dem Capture Register; die höherwertigen aus der 16-Bit-Variable. Bei zwei Arduinos muss ich nur regelmässig den Offset der 32-Bit-Zähler bestimmen; die absoluten Werte sind egal. -- Dipl.-Inform(FH) Peter Heitzer, peter.heitzer@rz.uni-regensburg.de