-
-
Erfahrener Benutzer
Robotik Einstein
Ne, das nennt sich "Polling"... d.h. der Sprung wird nur ausgeführt, wenn die Bedingung wahr ist und das Programm zufällig gerade an dieser If-Abfrage ist. Ist das Programm woanders, wird die Sprungmarke nicht angesprungen.
Der Interrupt wird definiert (auch mit einer Sprungmarke) und unterbricht ("interrupt") das Programm an der aktuellen Stelle, d.h. die aktuelle Anweisung wird noch beendet, danach wird die Sprungmarke angesprungen. Unabhängig davon, wo das Programm gerade ist.
Vorteil: Extrem schnelles reagieren auf Ereignisse.
Wobei ein Interrupt selbst nochmal durch einen Interrupt mit höherer Priorität unterbrochen werden kann.
Der, der sich z.B. immer durchsetzt, ist RESET.
Also Polling: Dauert ein Durchlauf der Main-Loop 1 Sekunde, wird der Pin nur 1x pro Sekunde abgefragt. Wenn das Programm halt gerade mal vorbeischaut.
Interrupt: Die Pin-Änderung wird innerhalb weniger CPU-Zyklen erkannt und "verarbeitet". Je nach CPU-Takt sind dies wenige µs oder sogar nur ns.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen