Amazz
31.10.2009, 20:15
Hi leute, hab en kleines Problem mit den PWMs :-)
Ich brauch 4 PWM Ausgänge, hab alle zum laufen bekommen, nur der an OC0 nicht. vielleicht kann mir ja jemand helfen.
Hier der Code:
#include <avr/io.h>
void timer_init(void)
{
DDRD = 0xff; //Ports A,B,D werden als Ausgänge gesetzt
DDRA = 0xff;
DDRB = 0xff;
TCCR1A = (1<<COM1A1)|(1<<COM1B1)|(1<<WGM10)|(1<<WGM12);;
TCCR1B = (1<<CS10);
TCCR2 = (1<<CS20)|(1<<WGM20)|(1<<COM21);
TCCR0 = (0<<WGM01)|(1<<WGM00)|(1<<COM01)|(0<<COM00)|(0<<CS00);
}
int main (void)
{
timer_init();
OCR1AL = 50;
OCR1BL = 100;
OCR2 = 150;
OCR0 = 200;
while (1);
}
so sieht das ganze dann aufm oszi aus (Kanal 4 wäre OC0):
http://www.m-s-online.com/screenshot-0000.jpg
Gruß Manuel
Ich brauch 4 PWM Ausgänge, hab alle zum laufen bekommen, nur der an OC0 nicht. vielleicht kann mir ja jemand helfen.
Hier der Code:
#include <avr/io.h>
void timer_init(void)
{
DDRD = 0xff; //Ports A,B,D werden als Ausgänge gesetzt
DDRA = 0xff;
DDRB = 0xff;
TCCR1A = (1<<COM1A1)|(1<<COM1B1)|(1<<WGM10)|(1<<WGM12);;
TCCR1B = (1<<CS10);
TCCR2 = (1<<CS20)|(1<<WGM20)|(1<<COM21);
TCCR0 = (0<<WGM01)|(1<<WGM00)|(1<<COM01)|(0<<COM00)|(0<<CS00);
}
int main (void)
{
timer_init();
OCR1AL = 50;
OCR1BL = 100;
OCR2 = 150;
OCR0 = 200;
while (1);
}
so sieht das ganze dann aufm oszi aus (Kanal 4 wäre OC0):
http://www.m-s-online.com/screenshot-0000.jpg
Gruß Manuel