-
-
Erfahrener Benutzer
Roboter Genie
Die AVR Hardware sorgt nur dafür, das ein einzelnes Zeichen in der vorgegebenen Geschwindigkeit rausgeht. Der ganze Rest wird in SW gemacht und ist daher unterbrechbar. Das sollte aber kein Problem sein, solange auf der anderen Seite auf das Eintreffen der zeichen gewartet wird.
Wo du etwas vorsichtig sein musst sind Änderung an Variablen in der ISR und gleichzeitiges Weiterverarbeiten der Variablen in einem anderen Programmteil, etwa Ausgabe aufs LCD. Nur Byte Variablen können in einem Schritt verarbeitet werden, alle anderen Typen brauchen dafür mehrere Teilschritte. Eine Integer Variable wird daher als 2 Byte verarbeitet. Dabei könnte es dir passieren, dass das erste Byte schon vom alten Wert verarbeitet wurde, dann kommt der Interrupt und ändert den Wert. Wenn dann das zweite Byte verarbeitet wird enthält es schon den neuen Wert.
Je öfter die ISR aufgerufen wird, umso größer wird die Chance, dass so etwas passiert.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen