Ich versuche mich jetzt hiermit das erste Mal an Interrupts und habe nach fleißigem Studieren der Register den folgenden Code ausgearbeitet. Ich möchte nur eine LED an Portb.2 ein- und ausknipsen, sobald ein Low an INT0 anliegt. Der Interrupt-Pin liegt mittels dem Taster des Encoders auf Masse (oder eben auch nicht, wenn er nicht gedrückt ist). Das ganze funktioniert leider noch nicht. Wo liegt mein Fehler?
Code:#include <avr/io.h> #include <avr/interrupt.h> #include <avr/signal.h> void ioinit( void ) { DDRB |= 0xff; DDRD |= 0x00; } int main( void ) { ioinit(); GIMSK |= ( 1 << INT0 ); MCUCR |= ( 1 << ISC01 ); sei(); for( ;; ) { } return 0; } SIGNAL( SIG_INTERRUPT0 ) { PORTB ^= ( 1 << PB2 ); }







Zitieren

Lesezeichen