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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.