-
PWM mit Atmega8
Hallo,
ich möchte an meinem Atmega8 die PWM-Funktion für OC1B aktivieren.
Ich habe mir das hier durchgelesen: http://www.rn-wissen.de/index.php/Ti...nter_%28Avr%29
Von da hab ich den Code auch größtenteils übernommen, nur einbisschen angepasst.
Hier mein Code:
Code:
int main (void)
{
int wert;
Init ();
while (1)
{
DDRB |= (1 << PB5);
DDRB |= (1 << PB4);
PORTB &= ~(1 << PB5);
PORTB |= (1 << PB4);
TCCR1B |= (1<<CS12);
TCCR1A |= (1<<WGM10);
TCCR1B |= (1<<WGM12);
TCCR1A |= (1<<COM1A1) | (1<<COM1B1);
OCR1A = 255;
OCR1B = 255;
DDRB |= (1 << PB2);
}
return 0;
}
Leider tut sich nichts wenn ich den Wert bei OCR1B ändere.
Kann mir jemand sagen was ich falsch gemacht habe?
Gruß Robin
-
Code:
int main (void)
{
/------------------------
/ hardware initialisierung
/-------------------------
int wert;
Init ();
DDRB |= (1 << PB5); / port init
DDRB |= (1 << PB4);
PORTB &= ~(1 << PB5);
PORTB |= (1 << PB4);
TCCR1B |= (1<<CS12);
TCCR1A |= (1<<WGM10);
TCCR1B |= (1<<WGM12);
TCCR1A |= (1<<COM1A1) | (1<<COM1B1);
DDRB |= (1 << PB2);
/------------------------
/ programm schleife
/-------------------------
while (1)
{
delay_ms(1000); / pwm jede sekunde inkrementieren
OCR1A =OCR1A+1;
OCR1B = OCR1B+1;
}
return 0; /wird nie erreicht
}
ist schon länger her mit c aber der grund sollte passen ohne jetzt auf die richtige initialisierung der pwm hardware zu achten da ich kein bock auf datenblatt gereade hab.
wie gesagt programm bitte überprüfen da es eventuell nicht läuft da ich schon den c syntax nicht mehr draufhab nach so viel assembler. :)