Zitat Zitat von ogni42
Schau mal nach dem INT0 bzw. INT1 Pin.

Hier ist ein kurzes Code-Schnipsel, wie man damit arbeiten kann:
Code:
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/signal.h>
#include <inttypes.h>

// key press down
SIGNAL( SIG_INTERRUPT0 )
{
    // do stuff
}

// key pres up
SIGNAL( SIG_INTERRUPT1 )
{
   // do other stuff
}



void interruptInit( void )
{
	// react on falling edges
	EICRA = (1<<ISC11)|(1<<ISC01);

	// enable INTO and INT1
	EIMSK = (1<<INT1)|(1<<INT0);

	sei();
}
Ok, das ist zwar kein Bascom, aber wenn wir schon dabei sind: es muss heissen

SIGNAL (SIG_INTERRUPT1)

und NICHT

SIGNAL( SIG_INTERRUPT1 )

mit letzterem macht man nen bösen Bauchplatscher und sucht sich nen Wolf nach dem Fehler...