Avr Atmega 88PA: MAX-Wert des Timers im Fast PWM Mode wird ignoriert

Gast #3830688
Lesenswert?
• ▲
▼
Hallo liebes Forum,

ich versuche derzeit erfolglos den Timer0 bei einem Atmega88 im Fast PWM 
Modus 7 mit benutzerdefiniertem Maximalwert einzustellen.
Der Timer ignoriert meinen im OCR0A-Register eingestellten Maximalwert 
einfach, und zählt bis 255 durch.

Hier mein Quellcode:
1
#include <avr/io.h>
2

3
int main(void)
4
{
5
  DDRD  |=  1<<PD5;                             //  Port mit LED auf Ausgang schalten
6
  OCR0A  =  20;                                 //  MAX-Wert des Timers
7
  OCR0B  =  10;                                 //  COMPARE-Wert
8
  TCCR0A  |=  (1<<WGM02)|(1<<WGM01)|(1<<WGM00)  //  Timer auf FAST PWM mit OCR0A als MAX (MODE 7)
9
  TCCR0A  |=  (1<<COM0B1)|(0<<COM0B0)           //  Lösche OCB0 bei Compare Match
10
  TCCR0B  |=  (0<<CS02)|(0<<CS01)|(1<<CS00);    //  Timer-Frequenz = F_CPU
11
  
12
  while(1)
13
    {
14
     __asm("nop");                  // Hilfsbefehl für Break-Point im Simulator
15
    }
16
}

Im CTC Modus zählt der Timer ordnungsgemäß bis zum eingestellten 
Maximalwert.
Weiß jemand Rat? Danke für eure Hilfe.

Link zum Datenblatt: 
http://www.atmel.com/images/Atmel-8271-8-bit-AVR-Microcontroller-ATmega48A-48PA-88A-88PA-168A-168PA-328-328P_datasheet_Complete.pdf

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren