Hallo zusammen,
ich habe einen ATMEGA128 und möchte, dass der Timer2 alle 100 Mikrosekunden überläuft:
Nun habe ich eine Variable "zaehlRunter_In_us" und diese Variable hat den Wert 7000.
Die ISR vom Timer2 soll bei jedem überlauf 100 Mikrosekunden davon abziehen.
Demnach soll die Variable "zaehlRunter_In_us" nach 7 Millisekunden auf 0 (Null) steht.
Leider klappt das nicht so wie ich mir das ausgemalt habe, hat Ihr eine Idee was ich falsch mache?
Ich habe mir in(!) der IF-Abfrage der ISR vom Timer2 eine LED (toggle) anzeigen lassen, doch die geht nicht aus...
Viele Grüße,
Crazy
ich habe einen ATMEGA128 und möchte, dass der Timer2 alle 100 Mikrosekunden überläuft:
Code:
TCCR2 = (1<<CS21); // Prescale 8
TCNT2 = 56; // Vorladen mit 56
TIMSK = (1<<TOIE2); // Overflow-Interrupt für Timer 2 enable
Nun habe ich eine Variable "zaehlRunter_In_us" und diese Variable hat den Wert 7000.
Code:
int zaehlRunter_In_us = 7000;
Code:
ISR(TIMER2_OVF_vect)
{
// 100us
TCNT2 = 56;
if(zaehlRunter_In_us > 0)
{
LED_TOGGLE();
zaehlRunter_In_us -= 100;
}
}
Code:
if(zaehlRunter_In_us == 0)
{
// mach was tolles
}
Leider klappt das nicht so wie ich mir das ausgemalt habe, hat Ihr eine Idee was ich falsch mache?
Ich habe mir in(!) der IF-Abfrage der ISR vom Timer2 eine LED (toggle) anzeigen lassen, doch die geht nicht aus...
Viele Grüße,
Crazy