Tag! Ich habe ein Problem mit der PWM bei einem Atmega32 (auch 16) und zwar erzeugen alle 3 Timer analoge Ausgänge per PWM. Bei den Timer 1 und 2 funktioniert dies auch tadellos, nur will beim Timer0 nix rauskommen :( Ich habe jetzt leider keine Ahnung mehr an was das liegen könnte... ------------------------------------------------------------------------ - ------------------------------------------------------------------------ - hier mal einen auszug meines Quellcodes: ... DDRD |= 0b10100000; // Pins als Outputs DDRB |= 0b00001000; PORTD &= 0b01011111; // Ausgänge abschalten PORTB &= 0b11110111; void Timers_init(void) { TCCR0 = 0b01101000; //Fast PWM - Timer gestoppt OCR0 = 0; //Timer1 (10bit) PWM TCCR1A = 0b10000011; // 10bit Fast PWM OCR1A = 0; TCCR1B = 0b00001000; // Timer2 (8bit) Fast PWM TCCR2 = 0b01101000; OCR2 = 0; } void PWM_Air(int wert) //Timer0 -> OC0 an B3 { TCCR0 = 0b01101000; // Timer stopp if(wert==0) { PORTB &= 0b11110111; return; // PWM stopp } if(wert>=255)wert=255; OCR0 = wert; // hier Timer starten TCCR0 = 0b01101010; //TAKTTEILER 8 } void PWM_Oxy(int wert) // Timer2 -> OC2 an D7 { TCCR2 = 0b01101000; // Timer stopp if(wert==0) { PORTD&=0b01111111; return; // PWM stopp } if(wert>=255)wert=255; if(wert>OCR0)wert=OCR0; //max gleicher Anteil Oxy und Air OCR2 = wert; // hier Timer starten TCCR2 = 0b01101001; //TAKTTEILER 1 } ------------------------------------------------------------------------ - ------------------------------------------------------------------------ - wär Top, wenn mir jemand weiterhelfen könnte !
Hallo , in welchen Modus willst Du den Timer 0 betreiben? Fast PWM ist es jedenfalls nicht. Bye Andi
.... ich habs jetzt mal in den Simulator reingehauen, und da toggelt der PB3, somit müsste der gepostete Code korrekt sein. Der Fehler ist dann wohl woanderst zu suchen. Bye Andi
Dane schrieb: > hier mal einen auszug meines Quellcodes: > ... Code als Anhang, sonst wirds nix mit Fehlersuche :-)
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.