Zeit

Jetzt wird's aber Zeit, daß wir uns mal die Zeitfunktionen anschauen. Zunächst:

millis()

Gibt die Anzahl der Millisekunden seit dem Start des Arduinos an. Nach ca. 50 Tagen läuft der interene Zähler mal über. Zurück kommt ein unsigned long.

micros()

ist da ganz ähnlich. Da kommen die Mikrosekunden seit dem letzten Start zurück. Auch der Zähler läuft mal über und zwar nach ca. 70min. Auflösung ist übrigens 8 microsec bei 8MHz Geräten und 4 microsec. bei 16MHz Geräten. Kleinere Zeiten kriegt man mit diesem Befehl nicht hin. (Ob das auch sinnvollwäre, lass ich mal dahin gestellt sein…)

delay(ms) 

Damit verzögere ich die Programmausführung um die angegeben Anzahl an Millisekunden. Und das ganze gibt's auch für microsekunden

delayMicroseconds(us) 

Beide Befehle halten das Programm an, aber nicht die sonstige Peripherie. Also PWM wird weiter erzeugt, die Uhren laufen weiter, Interrupts werden verarbeitet, ja sogar die serielle Schnittstelle nimmt noch Daten an, bis der Puffer voll ist. Trotzdem sollte man diese Funktion wenn möglich vermeiden. Vor allem wenn es um zeitkritische Dinge geht. Beispiele gibt es in Hülle und Fülle, da brauch ich zum Glück mal nix angeben. Oder doch?