Hallo... habe ein kleines Problem mit einer globalen Variablen
Das Programm ist nur ein Versuch um die Interrupt Funktion zu testen.
LED 1 soll leuchten wenn der Interrupt eintritt, zugleich soll die Variable a auf 1 gesetzt werden. Nun wird im Hauptprogramm die Variable a abgefragt, wenn sie 1 ist, soll LED 2 leuchten. Mein Problem: LED 2 leuchtet nicht. Woran könnte das liegen?
Ich verwende MyAVR und einen Atmega 8.
Wäre schön wenn mir jemand helfen könnte.
Vielen Dank schonmal
Code:#include <avr/io.h> #include <avr/interrupt.h> #include <inttypes.h> char a = 0; void init(void) //Initialisierung { DDRD = 0b11100000; //Pin 765 = Output 0-4 = Input DDRC = 0b00111000; //status LED ausgänge (Port C: 3,4,5) GICR|=(1<<INT0); //enables ext Interrupt (Pin 4, INT0) MCUCR = 0b00000011; //Steigende Flanke an INT0 Löst aus sei (); //Global Interrupt enable } ISR(INT0_vect) { a = 1; //setzte a auf 1 PORTC |= (1 << PC5); //schalte 1. LED ein } void main(void) { init(); while (1); { if (a == 1) //wenn a = 1 { PORTC |= (1 << PC4); //schalte 2. LED ein } } }







Zitieren
Lesezeichen