ATMEGA 32L - gedrückter Button wird nicht erkannt

OP #4430843
Lesenswert?

Hallo,

ich scheitere gerade an einem sehr banalen Problem. Ich versuche am 
PORTC an den Pins 4,5,6 jeweils 3 verschiedene Buttons einzulesen.

Leider erkennt mein Programm nur den PINC6. PINC5 und PINC4 werden 
leider nicht erkannt.

In dem folgenden Codebeispiel versuche ich das Ganze jetzt am PINC5 - 
wie bereits erwähnt mit PINC6 funktioniert es - die LED am PORTC (PC0) 
wird ein und ausgeschalten.

Die Funktion "debounce" wurd hier aus dem Forum entnommen:

https://www.mikrocontroller.net/articles/Entprellung#Warteschleifen-Verfahren


int main (void) {
  DDRC &= ~((1 << PINC5));
  DDRC |= (1 << PINC0);
  PORTC |= (1 << PINC5);

  while(1)
  {
    if (debounce(&PINC, PC5)) {

      PORTC ^= (1 << PC0);
    }
  }
}

Habe direkt auch mal am PC5 gemessen - durch die Pull-Up Widerstände 
werden dort schöne 5V geliefert. Dann kann es doch eigentlich nur noch 
am DDRC liegen? Das der µC diesen PINC5 nicht als Eingang interpretiert?
Ich bin ratlos.

Hat jemand eine Ahnung woran das liegen könnte?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren