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
Lesezeichen