Forum: Mikrocontroller und Digitale Elektronik ATMEGA16 - Timer1 will partout nicht laufen


von Kai H. (jabba80)


Lesenswert?

Hallo,
versuche mich gerade an der PWM mit dem Timer1 des ATMEGA16. Leider 
macht der absolut keine Anstände auch nur irgendweine Spannung auf OC1B 
auszugeben. So habe ich es initialisiert:

//-Timer 1 für PWM-Nutzung 
initialisieren---------------------------------//
      setbit(TCCR1B,WGM13);      // mode 14, fast pwm, update at top
      setbit(TCCR1B,WGM12);      // tov1 flag set on top
      setbit(TCCR1A,WGM11);      // top = ICR1
    clearbit(TCCR1A,WGM10);

    clearbit(TCCR1B,CS12);       // Prescaler auf 8
      setbit(TCCR1B,CS11);
    clearbit(TCCR1B,CS10);

    ICR1 = 0x0190;     // TOP bei 400 erreicht

//-OC1B als PWM-Port setzen 
(DIMMER)--------------------------------------//
      setbit(TCCR1B,COM1B1);  // non-inverting PWM-Mode
    clearbit(TCCR1B,COM1B0);

    OCR1B = 0x0100;          // Erwartete Spannung am Ausg: ca. 2,5v
//---------------------------------------------------------------------- 
--//

 ...weiß jemand Rat?

Das absolut frustrierendste ist, dass ich den Timer2 ohne weiteres auf 
FastPWM laufen lassen kann (nach dem selben Schema), auch wenn der dann 
mit einem fixen TOP-Wert von 0xff arbeitet. (aber selbst dieser modus 
klappt beim timer1 nicht)

Gruß
jabba

von Michael K. (mmike)


Lesenswert?

PD4 auch als Ausgang definiert ?

von Kai H. (jabba80)


Lesenswert?

ja :(

habe auch grade nochmal testweise zusätlich OCIE1B im TIMSK-Register 
gesetzt und bei jedem davon erzeugen Interrupt toggle ich nen ausgang. 
an dem ausgang habe ich dann ca 2,3V.
Bedeutet also, dass der Timer läuft, aber die PWM aus irgendeinem Grund 
nicht geht. O_o

von Kai H. (jabba80)


Lesenswert?

Habs! Doofer Fehler:

      setbit(TCCR1A,COM1B1);  // non-inverting PWM-Mode
    clearbit(TCCR1A,COM1B0);

so gehts!

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.