Gast
#77995
Hi,
ich verwende gcc-avr unter Linux und möchte nun ein Programm schreiben,
bei dem durch ein Interruptaufruf eine Variable verändert wird. Diese
veränderte Variable soll dann in anderen Funktionen (*hier die main
Funktion) ausgewertet werden. Leider funktioniert das Programm so
nicht! An was liegt das? Wenn ich die Variable hour erst in der main
deklariere funktioniert zwar die Abfrage, dann erkennt aber die
Interrupt routine die Variable nicht mehr.
hier mein Programm:
/*dcf77 Funkuhr*/
#include <avr/io.h>
#include <avr/signal.h>
char hour=13; // globale Variable
void initialisation(void)
{
DDRC=0xFF; //PORTC als Ausgang
PORTC=0xFF; //alle LEDs aus
}
INTERRUPT(SIG_OVERFLOW0)//Interrupt Timer0 Overflow
{
//... soll hier später die Variable hour verändern
}
int main (void)
{
initialisation();
if(hour==13) // hier die Abfrage der globalen Variable
{
PORTC=0x00;
}
return 0;
}
Eigentlich sollten ja nun die LEDs angehen, da die globale Variable 13
ist, tuts abba nicht. Hat jemand ne Ahnung?
Danke
Gruss Bartman