Hi,
ich habe meine ersten Versuche einer PWM gemacht. Es scheint zu funktionieren. Ändere ich z.B. den Vergleichswert, so werden meine Rechtecksignale größer bzw. kleiner.
Insgesamt erscheint mir das Signal aber ziemlich verrauscht. Was sagt ihr dazu? (Bild am Anhang)Code:#include <avr/io.h> // Namen der IO Register #include <util/delay.h> // Funktionen zum warten // Achtung, damit delay richtig funktioniert muß mit Optimierung compiliert werden int main(void) { DDRC = (1 << 0); // Nur PC0 als output, _BV(0) = (1<<0) = 1 PORTC = 0b11111110; // Pullups auf allen anderen Pins DDRD = (1 << 5); TCCR1A = (1<<COM1A1) | (1<<COM1A0) | (1<<WGM11); TCCR1B = (1<<WGM13) | (1<<WGM12) | (1<<CS10) | (1<<CS10); ICR1 = 0x8FFF; OCR1A = 0x1FFF; while (1) { PORTC &= 0b11111110; // 0 auf Bit 0 Ausgeben, Rest so lassen _delay_ms(10); // 100 ms Warten PORTC |= 0b00000001; // 1 auf Bit 0 Ausgeben, Rest so lassen _delay_ms(10); } }
Mfg Moebius







Zitieren

Lesezeichen