Hallo,
Ich habe da ein kleines Problem und hoffe auf eure Hilfe.
Mein Schaltplan
Code:Taster +5V | ATMEGA32 PIN16 (INT0) ------ 1MOhm --- (GND) PIN40 (PA) ------ 150 Ohm --- Duo LED --- (GND)
Meine Annahme nach cli() sind die Interrupts disabled und die Led bleibt bei mehrmaligem Tastendruck in dem Status.Code:#define MCU atmega32 #define F_CPU 16000000UL #include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> #include <avr/interrupt.h> #include <inttypes.h> // Direction Registers DDRA = 0xff; // LED Block A DDRC = 0xff; // LED Block C DDRD &= ~(1 << PIND7); // IR-LED to INPUT // LED Ports to LOW PORTA = 0x00; PORTC = 0x00; PORTD = 0x00; //Enable Intrerrupts for Intrustion Detection (INT0) sei(); // Interrupts zur Verfügung stellen GICR =(1<<INT0); // INT0 bereitstellen MCUCR =(3<<ISC00); // INT0 für steigende Flanken einstellen while(1){} } // Interrupt INT0 ISR(INT0_vect){ PORTA ^= 1<<PINA0; //die LED wird umgeschaltet cli(); //Interrupts deaktivieren // Ab jetzt sollte keine Änderung mehr möglich sein. }
Dies passiert aber nicht. Die Led wechselt weiter fleißig zwischen an und aus. Was mache ich da falsch?







Zitieren

Lesezeichen