Fast-PWM-Mode auf ATMega8

Gast #1376076
Ich habe folgende Initialisierung des Timer 1 (16Bit) beim ATMega8:
1
  OCR1A = 0xFFFF;      // TOP = 65535
2
  OCR1B = Middle;  // Debug
3
  TCCR1A = (1<<COM1B1) | (1<<WGM11) | (1<<WGM10);  // non-inverting OC-Mode
4
  TCCR1B = (1<<CS10)  | (1<<ICES1) | (1<<WGM13) | (WGM12);  // no Prescaler, Trigger on rising edge
5
  TIMSK = (1<< TOIE1);  // Overflow-Interrupt freigeben

Es soll der Timer-Mode 15 (Fast PWM) mit OC1A = 0xFFFF als Top sein.
Der Controller steckt im STK500 und wird mit 3,686MHz betrieben.
Die Frequenz stimmt, da das problemlos USART funktioniert.
Laut Datenblatt wird die Overflow-ISR beim Übergang von TOP nach BOTTOM 
ausgelöst (wird auch im Programm; LED blinkt).
Nach meiner Rechnung sollte die LED alle 17,7ms ihren Zustand ändern.
Das Ding leuchtet aber eher 2,5 Sekunden.
Ergo: Irgendwas an der Initialisierung ist falsch - nur was?

Ich bin etwas ratlos.

Vielen Dank im Voraus.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.