Hallo, ich habe mir das Atmel Evaluation Board und einen ATmega32 gekauft und versuche meine ersten Schritte in der Elektronik.

http://www.akagisan.de/electronic/at...ions-Board.pdf hier ist auf Seite 6 der Schaltplan

Die Taster sind, wenn ich alles Richtig verstanden habe "Active High", d. h ich brauche keine Pull Up Widerstände im ATmega aktivieren (Die Pull Down Widerstände sind ja schon auf dem Board).

Die 2 LEDs sind im Register D auf Pin 5 und 6, die Taster sind ebenfalls an Register D aber auf Pin 2, 3 und 4.

Ich habe mir, folgenden Code geschrieben, der sollte LED 1 (Pin 5) leuchten lassen solange der Taster nicht gedrückt ist, sobald der Taster gedrückt ist, soll LED 1 aus und LED 2 (Pin 6) angehen. Der Taster soll Taster 1 auf Pin 2 sein.

Code:
#include <avr/io.h>

int main()
{
	DDRD  = 0xF8; // entsprich 1111 1000
	PORTD = (0 << 2) & (0 << 3) & (0 << 4); // eig. unnötig, aber man weis ja nie
	
	while(1){
		if(PIND & 0x02){
			PORTD |= (1 << 6);		
			PORTD &= ~(1 << 5);
		}else{
			PORTD |= (1 << 5);
			PORTD &= ~(1 << 6);

		}

		
	}
}
Aber der Taster funktioniert nicht ... ich habe die Lötstellen kontrolliert und manchmal, ganz selten und unregelmäßig scheint der ATmega auf den Tastendruck zu reagieren, aber sehr sehr selten.

Ich hoffe ihr könnt mir sagen wo das Problem liegt.
MfG Icon

EDIT1 : Rechtschreibfehler