Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
techniken:timing [2014/01/23 15:42] fbonowski |
techniken:timing [2016/01/21 12:45] (aktuell) |
||
---|---|---|---|
Zeile 11: | Zeile 11: | ||
Statt zu warten, merkt sich der Rechner den Zeitpunkt, an dem die nächste Aktion fällig ist und führt das Programm weiter aus. | Statt zu warten, merkt sich der Rechner den Zeitpunkt, an dem die nächste Aktion fällig ist und führt das Programm weiter aus. | ||
An einer anderen Stelle kann das Programm dann die aktuelle Zeit anschauen und überprüfen, ob der Termin fällig ist. Falls ja, wird die aktion ausgeführt und ggf. ein neuer Termin festgelegt. Indem sich das Programm unterschiedliche "Termine" für unterschiedliche Aktionen in separaten Variablen merkt, kann es Aufgaben gestaffelt "gleichzeitig" erledigen. | An einer anderen Stelle kann das Programm dann die aktuelle Zeit anschauen und überprüfen, ob der Termin fällig ist. Falls ja, wird die aktion ausgeführt und ggf. ein neuer Termin festgelegt. Indem sich das Programm unterschiedliche "Termine" für unterschiedliche Aktionen in separaten Variablen merkt, kann es Aufgaben gestaffelt "gleichzeitig" erledigen. | ||
+ | Arduino stellt die seit dem Start vergangene Zeit durch die Funktion ''millis()'' und ''micros()'' bereit. | ||
**Das Beispiel:** Ein kommentiertes Beispiel für diese Vorgehensweise gibt es bei Arduino unter [[http://arduino.cc/en/Tutorial/BlinkWithoutDelay|Digital/BlinkWithoutDelay]] | **Das Beispiel:** Ein kommentiertes Beispiel für diese Vorgehensweise gibt es bei Arduino unter [[http://arduino.cc/en/Tutorial/BlinkWithoutDelay|Digital/BlinkWithoutDelay]] | ||
- | |||
===== Multitasking mit Hardwareunterstützung: Timer-Interrupts ===== | ===== Multitasking mit Hardwareunterstützung: Timer-Interrupts ===== | ||
+ | Der im Arduino verbaute ATMega Prozessor besitzt mehrere integrierte Timer, die wie eine Stop- oder Eieruhr verwendet werden können. Sie sind ein kleines bisschen komplizierter in der benutzung, bieten dafür aber eine sehr hohe Genauigkeit und laufen auch dann weiter, wenn der Arduino gerade mit anderen Dingen ausgelastet ist. | ||
+ | Die Bibliothek [[http://playground.arduino.cc/code/timer1|Timer1]] vereinfacht der Verwendung. | ||