-
-
Erfahrener Benutzer
Roboter Experte
Hast Du denn den Output-Compare-Interrupt auch aktiviert? Das kannst Du überprüfen, indem Du Dir den Inhalt des TIMSK1-Registers ansiehst. Um genau zu sein, muss das Bit TIMSK1.1 gesetzt sein.
Ist dieser Interrupt nämlich nicht aktiviert, passiert folgendes: Der Zähler zählt hoch, beim OCR1A-Wert von 255 wird der OC1A-Pin getoggelt und geht auf High. Das Low-Byte vom Timer1 zählt von 255 natürlich auf 0 weiter (kann ja gar nicht anders bei 8 bit) - aber die kompletten 16 Bits des Timer1 zählen brav weiter: 256, 257, 258,... bis 65535. Und deshalb gibt´s erstmal ganz, ganz lange keinen Output Compare-Match mehr - und OC1A bleibt die ganze Zeit High. Und so sieht´s im Moment doch aus, oder?
Also:
- Output-Compare-Interrupt aktivieren
- In der der Output-Compare-ISR den ganzen (!) Timer auf 0 setzen, nicht nur das Low-Byte
Gutes Gelingen!
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen