Gast
#74696
Hallo,
angehängt habe ein abgespecktes Programm, das timer-gesteuert den Wert
der globalen
Variablen Nrbg über die UART ausgibt.
/* globale Variablen */
volatile unsigned char Nrbg = 2;
SIGNAL(SIG_OVERFLOW0)
/* signal handler for Timer 0 overflow */
{
// FEHLER: Nrbg wird in der ISR immer neu mit
// dem Wert aus der global-Deklaration initialisiert !!!
Nrbg++; // also 2++ = 3
Tx_wert = Nrbg + 0xf1; // 3 + 0xf1 = 0xf4
uart_send_byte( &Tx_wert); // 0xf4 wird vom Terminalprogramm
empfangen
}
Folgender Fehler tritt auf:
Die global deklarierte Variable "Nrbg" wird bei der Verwendung in der
Timer-ISR
jedesmal neu initialisiert - verhält sich also überhaupt nicht
statisch, wie gewünscht !
Compiler Version WinAVR-20030424.
Was habe ich übersehen?
Vielen Dank
Gruß Roland