-
-
Erfahrener Benutzer
Robotik Visionär
So schlecht ist die Lösung mit dem 2 mal Abfragen gar nicht. Es geht aber auch besser. Die normale Lösung für eine Atomaren zugriff ist es Interrupts kurz zu sperren und dann wieder freizugeben.
Die erste bessere Lösung ist es die Abfrage in der ISR zu machen, und dann ein extra Flag zu nutzen, das halt nur 1 Byte groß ist.
Die 2 te besser Lösung ist es das Porgramm anders zu schreiben. Es gibt bessere Methoden um Zeiten zu messen oder defierniert zu warten, als in einer ISR zu zählen. Für die Zeitmessung kann man gleich das Timer Regeistser nutzen, und dann ggf. nur noch die Überläufe Zählen. Für eine Wartezeit kann man ähnlich nur die Überläufe Zählen, und den Startwert des Timers passend vorladen. Das Hauptprogramm kann dann ggf. auch den sleep Befehl nutzen. Das gibt dann zyklus-genaue Wartezeiten, und nebenbei weniger Stromverbrauch.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen