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 ??
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
> 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); |
hi ach stimmt :-) vielen dank .. bin nioch nicht soo lange mit C / C++ aktiv grüße Dirk
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.