Gast
#1741951
Hallo,
Ich versuche mit Timer0 und Interrupt service Routine von Atmega128
zu üben, den Quellcode befindet sich unten.
Das Proramm befindet sich ständig in der ISR Routine.
In der ISR soll die Variable inkremntiert und nach erreichen von
100 soll neu hochzählen.
Wo liegt meine Fehler?
Danke
//----------------------------------
#include <avr/io.h>
#include <avr/interrupt.h>
unsigned int var;
void init_tim0(void)
{
TCCR0 = (1 << WGM01) | (0 << CS02) | (1 << CS01) | (1 << CS00);
OCR0 = 114;
TIMSK = (1<<OCIE0);
}
ISR (SIG_OUTPUT_COMPARE0)
{
var = var + 1;
}
int main (void)
{
var = 0;
init_tim0();
sei();
while(1)
{
if (var == 100) var = 0;
}
return 0;
}