-
-
Super-Moderator
Robotik Visionär
Nö, die Variable ist entweder global für Interrupt, Main und Subroutine oder das Ganze klappt eh nicht.
Eine (mögliche) Tücke noch: eine Variable, die über 1000 geht, ist offensichtlich länger als ein Byte. Und während du auf Null setzten willst, zählt ja der Timer weiter. Dabei kann es durch gefinkelte Überlappungen zu Datenmüll kommen (kommt auf den Kompiler an) Um sicher zu sein, ein Tip:
Definiere zusätzlich eine Variable LOCK, normalerweise null.
Veränderst du im Normalprogramm den Wert von Z, setz' LOCK = 1, ändere Z, dann wieder LOCK = 0.
In der Interrupt routine zählst du nur dann auf Z, wenn LOCK auf Null steht. Aber nicht darauf warten (--> Katastophe), sondern einfach rücksprung aus Irpt).
Das ist sicher einer drauf, aber nummero sicher mfg
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen