Hi Moonwalker,
ich denk mal dein Problem ist wenn du drückst ist dein Programm schon abgelaufen! Du müsstest theoretisch den Taster gedrückt halten während du resetest! Oder du baust deinen Abfrage und Ausgabe Block in ne Endlosschleife ein! Also statt:
Code:
int main(void) 
{ 

 DDRC = 0xFF; // PortC Ausgänge 
 DDRD = 0x00; // PortD Eingänge 
 PORTD = 0xFF; //Pullups PortD aktiviert 

 //Bit 2 an PORTD auswerten 
 if ( ! PIND & 0x04) //Wenn PortD Bit2 0 hat 
       { 
       PORTC=0xFF; //Schalter gedrückt 
       } 
    else 
       { 
       PORTC=0x00; //Schalter nicht gedrückt 
       } 
        
return 0; 
}
so
Code:
int main(void) 
{ 

 DDRC = 0xFF; // PortC Ausgänge 
 DDRD = 0x00; // PortD Eingänge 
 PORTD = 0xFF; //Pullups PortD aktiviert 

 //Bit 2 an PORTD auswerten 
 for(;;)
 {
  if ( ! PIND & 0x04) //Wenn PortD Bit2 0 hat 
       { 
       PORTC=0xFF; //Schalter gedrückt 
       } 
    else 
       { 
       PORTC=0x00; //Schalter nicht gedrückt 
       } 
 }        
return 0; 
}
wenn du die Endlosschleife hast wird der Taster die ganze Zeit abgefragt und nicht nur einmal ganz am Anfang!
Gruß Michi