timer des mega8 frage

OP #536543
Lesenswert?

hi
ich bastle gerade an einem programm

timer0 soll den encoder und taster mit einem überlaufinterrupt versorgen

timer läuft auch
überlauf funktioniert


timer2  soll ein timeoutsignal erzeugen   auch diese über mittels 
überlaufinterrupt

timer läuft auch
überlauf funktioniert


jeder für sich funkioniert auch ..
aber beide zusammen funktionieren nicht zusammen

hab ich was  überlesen ?
oder kann nur einer im überlaufmodus funktionieren ??
OP #536586
Lesenswert?

hi

die beiden timer im overflow

//Timer2
TCCR2  = (1<<CS22) | (1<<CS21) | (1<<CS22);  // prescaler   clk/1024
TIMSK  = (1<<TOIE2);        // timer2 overflow


// Timer0
TCCR0  = (1<<CS01);        // prescaler clk/8
TIMSK  = (1<<TOIE0);                // timer0 overflow


//---------------------timer 2 overflow
ISR (SIG_OVERFLOW2)
{
     //  code  Timeoutzähler
}


//---------------------timer 0 overflow
ISR (SIG_OVERFLOW0)
{
  // code Rotary encoder und Taster
}



wenn ich einen von beiden rausnehme
funktioniert jeweils der andere timer
nur beide zusammen wollen nicht
Gast #536589
Lesenswert?

> TIMSK  = (1<<TOIE2);        // timer2 overflow
> ...
> TIMSK  = (1<<TOIE0);                // timer0 overflow
Klar, mit der Freigabe des Timer 0 Overflow Interrupts löschst Du ja 
auch die Freigabe des Timer 2 Overflow Interrupt wieder. Also entweder
1
TIMSK = (1<<TOIE2) | (1<<TOIE0);
oder anstelle der zweiten Anweisung
1
TIMSK |= (1<<TOIE0);

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren