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 );
}