Hallo,
ich bastle gerade an einer kleinen PWM-Anwendung mit dem ATtiny45.
Controller läuft mit internem Takt.
Minimal-Programm:
1 | #include <avr/io.h>
|
2 |
|
3 | int main(void)
|
4 | {
|
5 | TCCR0A |= (1<<WGM00)|(1<<WGM01); // Fast PWM
|
6 | TCCR0B |= (1<<CS00); // ohne Prescaler
|
7 | DDRB |= (1<<PB0); // PB0 als Ausgabe-Pin
|
8 | TCCR0A |= (1<<COM0A1); // PWM aktivieren
|
9 |
|
10 | while (1) {
|
11 | OCR0A = 0; // 0 als PWM-Wert ausgeben
|
12 | }
|
13 | }
|
Wenn ich das so mache, bekomme ich leider keine saubere 0-Line, sondern
alle rund 250us einen Peak von 1us. Was mache ich falsch?