Hallo Klebwax
Danke für deine Antwort ich habe jetzt mal wie folgt umgebaut.
Der INT0 wird jetzt gegen GND getastet.Code:int detect = 0; int main(){ // Direction Registers DDRA = 0xff; // LED Block A DDRC = 0xff; // LED Block C DDRD &= ~(1 << PIND7); // IR-LED to INPUT // Ports to LOW PORTA = 0x00; PORTC = 0x00; PORTD = 0x00; // :-) Gang einlegen PORTD |= (1<<PD2); // Pullup auf INT0 (PD2) an GICR =(1<<INT0); // INT0 bereitstellen MCUCR =(3<<ISC00); // INT0 für steigende Flanke einstellen // Los fahren sei(); // Interrupts aktivieren while(1){ if (detect == 1){ cli(); // Interrupts deaktivieren (halten) detect=0; } } } // Interrupt INT0 ISR(INT0_vect){ PORTA ^= 1<<PINA0; //die LED wird umgeschaltet detect = 1; }
Zum Test ist das Ganze noch so mit der LED an PINA.
Damit ich sehen kann ob der Interrupt wirklich deaktiviert wird.
Ziel ist es über den Interrupt das öffnen des Gerätes zu erkennen.
Die LED Widerstände werde ich noch ändern.
Lesezeichen