Forum: Mikrocontroller und Digitale Elektronik Fast-PWM-Mode auf ATMega8


von STK500-Besitzer (Gast)


Lesenswert?

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.

von Karl H. (kbuchegg)


Lesenswert?

STK500-Besitzer schrieb:
>
1
>   TCCR1B = (1<<CS10)  | (1<<ICES1) | (1<<WGM13) | (WGM12);  // no
2
> Prescaler, Trigger on rising edge
3
>

  1<<WGM12

von STK500-Besitzer (Gast)


Lesenswert?

>Ich bin etwas ratlos.

nee, blind.
Danke!
Das war's!

Ich werde mir wohl doch einen größeren Monitor kaufen müssen...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.