mit grep GIFER kam #define GIFR _SFR_IO8(0x3A)
das ich auch meinem Programm beigefügt habe.
Leider Funktionierts aber noch immer nicht..
Ich hab jetzt PD2 mit einem Wiederstand auf Masse gezogen.
Wenn ich jetzt mit +5Volt auf PD2 gehe, leuchtet die LED PC3 und schaltet auch wieder ab, sobald die 5V weg sind.
PD3 (INT1) ist unbeschaltet.
Die LED PC2 die vom Interrupt aktiviert werden sollte, bleibt leider immer noch dunkel wenn ich mit 5v an die pd2 oder pd3 gehe 
hier der Aktuelle Code:
Code:
#include <avr/interrupt.h>
#include <avr/signal.h>
#include <avr/io.h>
#include <avr/delay.h> /* definiert _delay_ms() ab avr-libc Version 1.2.0 */
#define GIMSK _SFR_IO8(0x3B)
#define GICR GIMSK
#define GIFR _SFR_IO8(0x3A)
SIGNAL(SIG_INTERRUPT0) // signal handler for external interrupt
{
PORTC|=(1<<PC2); //LED2 anschalte
}
SIGNAL(SIG_INTERRUPT1) // signal handler for external interrupt
{
PORTC|=(1<<PC2); //LED2 anschalte
}
int main (void){
DDRC = 0xff; //alles als Ausgang def.
PORTC =0x00; //PullUP's aus
DDRD =0x00; //alles EIngang
PORTD =0x00; //PullUp's aus
//LED's ausschalten
PORTC&=(!(1<<PC3)); PORTC&=(!(1<<PC2)); PORTC&=(!(1<<PC1)); PORTC&=(!(1<<PC0));
// INT0 on raising edge
// clear pending INT0
// enable INT0 interrupt
MCUCR |= (1 << ISC01) | (1 << ISC00) | (1 << ISC10)| (1 << ISC11);
GIFR = (1 << INTF0);
GICR |= (1 << INT0);
sei();
while(1){
if (PIND & (1<<PD2) ){
PORTC|=(1<<PC3); //LED3 anschalte
}
else{
PORTC&=(~(1<<PC3));
}
}
}
Vielen Dank für eure Antworten!
Lesezeichen