Tasterabfrage mit mega16

OP #3257119
Lesenswert?

Hallo Zusammen,

ich möchte einer einfache Tasterabfrage (3x4 Matrixtastatur) mit dem 
mega16 realisieren. Am PC0 gebe ich ein Signal aus und am PC3/PC4 möchte 
ich den Zustand abfragen und daraufhin eine LED ein bzw. ausschalten 
(PD7).

Mein Problem, er macht es nicht. Am PC3 liegen 5V an und an PC4 0V 
(beides dauerhaft). Wenn ich die entsprechenden Tasten drücke ändern 
sich auch die Signale an PC3/4 dementsprechend, er verarbeitet es aber 
nicht.

Kann mir da jemand helfen? Gibt es bei dem mega16 noch irgendwas zu 
beachten, denn mit einem mega8 habe ich fast die gleiche Schaltung schon 
zum laufen gebracht?!
1
#include <avr/io.h>
2

3
#define Zeile1 PINC & (1 << 3)
4
#define Zeile2 PINC & (1 << 4)
5

6
int main(void)
7
{
8
  DDRC = (1 << DDC0)|(1 << DDC1)|(1 << DDC2);          // PC0,PC1,PC2 als Ausgang
9
  DDRD = (1 << DDD7);                      // PD7 als Ausgang
10
  DDRC &= ~ (1 << DDC3)|(1 << DDC4)|(1 << DDC4)|(1 << DDC4);  // PC3,PC4,PC5,PC6 als Eingang
11
  
12
    while(1)
13
    {
14
    PORTC |= (1 << 0);      //Spalte 1 on
15
        if ( Zeile1 )
16
        {
17
          PORTD |= (1 << 7);    //LED ein      
18
        }
19
        if ( Zeile2 )
20
        {
21
          PORTD &= ~(1 << 7);    //LED aus
22
    } 
23
    }
24
}

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