Hallo erstmal,
ich habe da folgendes Problem ich möchte 2 Timer gleichzeitig auf einem
ATmega128L laufen lassen. einen Timer0 8Bit Timer und Timer1 16 Bit
Timer. Mein Problem ist nun das sich der Timer den ich zuerst
initiallisiere immer aufhängt bzw nicht läuft. Programmiert habe ich das
ganze so.
Timer0:
void hwclockRestart ()
{
TCCR0 = (1 << CS02) | (1 << CS01)| (1 << CS00);
TIMSK = (1 << TOIE0);
TCNT0 = 256 - 72;
}
Timer1:
void hwclockRestart16 ()
{
TCCR1A = 0;
TCCR1B = (1 << CS12) | (1 << CS10);
TIMSK = (1 << TOIE1);
TCNT1H = 0xEF;
TCNT1L = 0x20;
}
SObald ich nun in meiner init Funktion die beiden Timer aufrufe hängt
sich immer der auf den ich zuerst aufrufe. Bei
hwclockRestart();
hwclockRestart16();
Halt der 8 Bit bei gedrehtem Aufruf der andere. Hat einer von euch eine
Idee woran es liegen könnte vieleicht an den Interrupts das die sich
Ineinader aufrufen wovon ich nicht ausgehe.
ISR(TIMER0_OVF_vect)
{
cli();
TCNT0 = 256 - 72;
sei();
}
ISR(TIMER1_OVF_vect)
{
cli();
TCNT1H = 0xEF;
TCNT1L = 0x20;
sei();
}
Danke im Vorraus Gruß Losti