Forum: Mikrocontroller und Digitale Elektronik Matrixtastatur C-Programm


von Unwissender (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,
ich sitz hier schon ne ganze weile und weiß nicht warum meine
Tastaturabfrage nur müll hergibt.
Vielleicht könnt ihr mir ja auf die Sprünge helfen.

Also wenn ich in der ersten Spalte was drücke, kommt eigentlich das was
kommen sollte wenn ich in der 2. SPalte drück (2 anstatt 1, 5 anstatt 4
usw.). Wenn ich in Spalte 3 drücke kommt garnichts.

Das Programm sollte eigentlich erstmal alle Pins als eingänge definieren
und die PullUps aktivieren.
Anschließend sollte ein Spaltenbit auf Ausgang und Low gesetzt werden
und "geschaut" werden welches Zeilenbit auf low gezogen wird.
Und das alles für jede Spalte.
Funktioniert aber irgendwie nicht ...

Es handelt sich um diese Tastatur:
http://www.conrad.de/goto.php?artikel=709840

So, ich bedanke mich schonmal im Vorraus.
Gruß Marcel

von STK500-Besitzer (Gast)


Lesenswert?

Guck dir mal bitte in einem C-Buch (oder online) an, was passiert, wenn 
man innerhalb einer Funktion ein Return-Wert übergibt.

Weiterhin hat Atmel zu dem Thema zwei Application Notes herausgegeben.

von Stefan E. (sternst)


Lesenswert?

1
PORTC &= ~(1<<PC0);      /* Activate internal Pull-Up resistor */
Nö.

Des weiteren gehört zwischen die Ausgabe der Spalte und dem Einlesen der 
Zeile ein kleines Delay (mindestens ein NOP).

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.