hello_mbot_blockierung
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
hello_mbot_blockierung [2025/02/18 06:41] – [Vor- und Nachteile blockierender und nicht-blockierender Methoden] torsten.roehl | hello_mbot_blockierung [2025/02/19 19:47] (aktuell) – [Nicht-blockierende Umsetzung] torsten.roehl | ||
---|---|---|---|
Zeile 115: | Zeile 115: | ||
*/ | */ | ||
void blinken(int interval) { | void blinken(int interval) { | ||
+ | |||
unsigned long currentMillis = millis(); | unsigned long currentMillis = millis(); | ||
- | if (currentMillis - previousMillis | + | |
- | | + | |
- | previousMillis = currentMillis; | + | |
- | ledState = !ledState; | + | |
- | | + | // step: .. toggle now! |
- | led.setColor(0, | + | firstRun = false; |
- | led.setColor(1, | + | previousMillis = currentMillis; |
- | } else { | + | ledState = !ledState; |
- | led.setColor(0, | + | |
- | led.setColor(1, | + | |
- | } | + | led.setColor(0, |
- | led.show(); | + | led.setColor(1, |
+ | } else { | ||
+ | led.setColor(0, | ||
+ | led.setColor(1, | ||
} | } | ||
+ | led.show(); | ||
} | } | ||
</ | </ | ||
== Erklärungen zum Quellcode == | == Erklärungen zum Quellcode == | ||
- | Die Methode '' | ||
- | //Zeile 42// prüft, ob das Intervall abgelaufen oder der erste Aufruf ('' | ||
- | |||
- | //Zeile 45// wechselt den LED-Zustand, | ||
- | |||
- | //Zeile 47–54// setzt die LED auf Rot oder schaltet sie aus, abhängig von '' | ||
Die Variable '' | Die Variable '' | ||
Zeile 147: | Zeile 144: | ||
< | < | ||
In dieser Version wird das Blinken der LEDs nicht blockierend mit '' | In dieser Version wird das Blinken der LEDs nicht blockierend mit '' | ||
- | ===== Vor- und Nachteile blockierender und nicht-blockierender Methoden | + | ====== Zusammenfassung ====== |
Nicht-blockierende Methoden ermöglichen eine effizientere Steuerung des mBots, da Abläufe parallel ausgeführt werden können. Gleichzeitig sind blockierende Methoden einfacher umzusetzen und sind häufig ausreichend. | Nicht-blockierende Methoden ermöglichen eine effizientere Steuerung des mBots, da Abläufe parallel ausgeführt werden können. Gleichzeitig sind blockierende Methoden einfacher umzusetzen und sind häufig ausreichend. | ||
- | ^Vorteile der nicht-blockierenden Methode ^Vorteile der blockierenden Methode ^ | + | ^ '' |
|✅ **Schnellere Reaktionszeit: | |✅ **Schnellere Reaktionszeit: | ||
|✅ **Parallele Abläufe:** Der mBot kann gleichzeitig fahren, blinken und Hindernisse erkennen, da keine Aufgabe den Programmfluss blockiert. Dadurch reagiert das System dynamischer auf Veränderungen in der Umgebung. |✅ **In einfachen Anwendungen ausreichend: | |✅ **Parallele Abläufe:** Der mBot kann gleichzeitig fahren, blinken und Hindernisse erkennen, da keine Aufgabe den Programmfluss blockiert. Dadurch reagiert das System dynamischer auf Veränderungen in der Umgebung. |✅ **In einfachen Anwendungen ausreichend: | ||
- | === Vorteile der nicht-blockierenden Methode === | + | |✅ **Effizienter Code:** Anstatt auf eine feste Wartezeit zu warten, werden Aufgaben zeitgesteuert verarbeitet. So bleibt das System jederzeit aktiv und reaktionsfähig. |
- | ✅ **Schnellere Reaktionszeit: | + | |
- | + | ||
- | ✅ **Parallele Abläufe:** Der mBot kann gleichzeitig fahren, blinken und Hindernisse erkennen, da keine Aufgabe den Programmfluss blockiert. Dadurch reagiert das System dynamischer auf Veränderungen in der Umgebung. | + | |
- | + | ||
- | ✅ **Effizienter Code:** Anstatt auf eine feste Wartezeit zu warten, werden Aufgaben zeitgesteuert verarbeitet. So bleibt das System jederzeit aktiv und reaktionsfähig. | + | |
- | + | ||
- | === Vorteile der blockierenden Methode === | + | |
- | ✅ **Einfache Umsetzung: | + | |
- | + | ||
- | ✅ **In einfachen Anwendungen ausreichend: | + | |
hello_mbot_blockierung.1739860893.txt.gz · Zuletzt geändert: 2025/02/18 06:41 von torsten.roehl