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
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.