DO-WHILE: do { /* Code */ } while (Bedingung);
WHILE: while (Bedingung) { /* Code */ }
FOR: for (Startwert; Bedingung; Inkrement) { /* Code */ }
DO-WHILE: do { /* Code */ } while (Bedingung);
WHILE: while (Bedingung) { /* Code */ }
FOR: for (Startwert; Bedingung; Inkrement) { /* Code */ }
Es gibt verschiedene Arten von Interrupts, die in der Mikrocontroller-Programmierung verwendet werden:
Eine Interrupt Service Routine (ISR) sollte immer so kurz wie möglich gehalten werden. Funktionen wie digitalWrite() sind vergleichsweise langsam und können eine ISR stark verzögern, was den Mikrocontroller bei der Bearbeitung von Ereignissen verlangsamt.
Aus diesem Grund wird in der ISR nur der Zustand der Variable ledState geändert. Die eigentliche Steuerung der LED erfolgt im Hauptprogramm außerhalb der ISR. Dadurch bleibt die ISR kurz und effizient.
Interrupts sind nützlich, um auf Ereignisse sofort zu reagieren, ohne dass das Hauptprogramm ständig auf diese Ereignisse warten muss. Dies spart Rechenleistung und ermöglicht es dem Mikrocontroller, andere Aufgaben zu erledigen, während er gleichzeitig auf äußere Ereignisse, wie das Drücken eines Tasters, reagieren kann.
Interrupts sind Signale, die dem Mikrocontroller mitteilen, dass ein bestimmtes Ereignis eingetreten ist und sofort Aufmerksamkeit erfordert. Wenn ein Interrupt ausgelöst wird, wird die normale Ausführung des Programms unterbrochen und eine spezielle Funktion, die sogenannte Interrupt Service Routine (ISR), ausgeführt. Danach kehrt der Mikrocontroller zum normalen Ablauf zurück.
Zählen Sie von 3 bis 10 und geben Sie die Zahlen über den seriellen Monitor aus
Schleifenform: FOR
Begründung: Da die Anzahl der Durchläufe bekannt ist, eignet sich eine FOR-Schleife am besten.
for (int i = 3; i <= 10; i++) {
Serial.println(i);
delay(500);
}
DO-WHILE: Sensorabfragen, Benutzereingaben
WHILE: Tasterabfragen, Bedingte Wiederholungen
FOR: Zählvorgänge, Iterationen über Arrays