Forum: Compiler & IDEs Attiny toggelt nicht (ctc)


von klaus (Gast)


Lesenswert?

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!

von klaus (Gast)


Lesenswert?

Kleine Korrektur: ich erwarte natürlich nicht ein togglen von Pin8, 
sondern Pin5.
Da kann man mal sehen wie ich schon durch den Wind bin.

von Icke (Gast)


Lesenswert?

TCCR0A = 
(0<<COM0A1)|(1<<COM0A0)|(0<<COM0B1)|(0<<COM0B0)|(1<<WGM01)|(0<<WGM00);

Du hast da falsche defines.

Und nu ganz schnell Pause machen, Bierchen genießen, morgen 
weitermachen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.