Ich habe grad folgendes kleines Programm geschrieben:
PS: Ich benutze Myavr-Board.

Code:
//Testprogramm zum testen der LEDs und Schalter
//Der Schalter hängt an PortD Pin 2, die LEDs hängen an PortC
#include <avr/io.h>
#include <inttypes.h>
#ifndef F_CPU
#define F_CPU 3686400UL     /* Quarz mit 3.6864 Mhz  */
#endif
#include <avr/delay.h>      /* definiert _delay_ms() ab avr-libc Version 1.2.0 */

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;
}
Ich kann drücken wie ich will, da leuchtet nichts... ?

PS: Habe gerade mal an pin D.2 gemessen, passt alles. Unbetätigt liegen +5V an, betätige ich den Taster liegen 0V an.