Gast
#3169737
Hallo zusammen, ich hoffe, ihr könnt mir helfen. Es geht um ein Programm für den Asuro. es soll die status-LED kurz ausschalten, wenn man den Taster drückt. Das Problem ist, dass das Programm wahrscheinlich nicht zur While-schleife zurückspringt, um die LED dann wieder auf grün zu schalten. Ich lasse die LED mit Absicht in der While-schleife auf grün setzen, um herauszufinden, ob das Programm nach dem Interrupt zur Schleife zurückspringt oder nicht. #include <avr/io.h> #include <avr/interrupt.h> void init (void) { // Datenrichtung der I/O-Ports festlegen. DDRB |= (1 << PB0); //enable all interrupts GICR |= (1 << INT1); SREG |= (1 << 7); // Interrupt wird bei fallender Flanke ausgelöst MCUCR |= (1 << ISC11); MCUCR &= ~(1 << ISC10); sei(); } SIGNAL (INT1_vect) { PORTB &= ~(1 << PB0); // Grüne LED aus reti(); } int main(void) { init(); while(1) { PORTB |= (1 << PB0); // Grüne LED an } return 0; } freundliche Grüße Abi