Ich versuche gerade eine LED mittels PWM zu dimmen. Dafür benutze ich den Timer2 (8Bit) des Atmega8, weil die anderen Timer schon belegt sind. Aber wenn ich die LED an OC1A oder B lege passiert einfach garnichts, wo liegt der Fehler ?
1 | #define F_CPU 3686400UL |
2 | |
3 | #include <avr/io.h> |
4 | #include <avr/interrupt.h> |
5 | #include <util/delay.h> |
6 | |
7 | int main(void) |
8 | { |
9 | DDRB |= ((1<<PB1) | (1<<PB2)); |
10 | |
11 | |
12 | TCCR2 |= ((1<<WGM21) | (1<<WGM20) | (1<<CS22) | (1<<CS21) | (1<<COM21)); //Fast PWM, Prescaler 256, Non inverting |
13 | OCR2 = 0; |
14 | sei(); |
15 | while(1) |
16 | { |
17 | OCR2++; |
18 | _delay_ms(20); |
19 | } |
20 | } |