Guten Abend,
schaut mal dieser Code:
1 | #include "avr/io.h"
|
2 | #include "avr/interrupt.h"
|
3 |
|
4 | ISR(TIMER0_COMPA_vect) {
|
5 | PORTB ^= (1<<PB3);
|
6 | }
|
7 |
|
8 | int main(void)
|
9 | {
|
10 | DDRB = 0xff;//(1<<PB3)|(1<<PB4);
|
11 | TIMSK = 1<<OCIE0A;
|
12 | TCNT0 = 0;
|
13 | TCCR0A = (0<<COM0A1)|(1<<COM1A0)|(0<<COM0B1)|(0<<COM1B0)|(1<<WGM01)|(0<<WGM00);
|
14 | OCR0A = 200;
|
15 | OCR0B = 0;
|
16 | TCCR0B = (0<<WGM02)|(0<<CS02)|(0<<CS01)|(1<<CS00);
|
17 |
|
18 | sei();
|
19 |
|
20 | for(;;);
|
21 | }
|
22 | }
|
Sollte da nich pin 8, also PB0 als OC0A pin wackeln? PB3, also derjenige
im Interrupt wackelt.
Sieht jemand meinen Fehler und kann mir bei dem Problem helfen?
CTC Mode sollte an sein mit WGM0=2, ebenso "Toggle oc0A on compare
match", also muss ich wohl etwas entscheidendes übersehen.
Danke!