Hallo! Ich wollte heute das Programm von Peter Dannegger, das von Marc L. für 4x4 Tastaturen verändert wurde, ausprobieren, doch es hat nicht funktioniert. Beim compilieren gab es keine Fehler doch die LEDs auf meinem Experimentierboard haben nicht geleuchtet. Da ich mich nicht wirklich gut mit dem Programmieren auskenne, habe ich die Ausgabe an den LEDs vom ursprünglichen 3x4 Programm in mein Programm hineinkopiert. Da ich mich, wie schon gesagt, nicht gut auskenne, weiß ich nicht ob das so funktionieren kann oder nicht. Ich wäre sehr froh über Tipps, wie man dieses Programm zum laufen bringt (Anzeige an den LEDs, welche Taste gedrückt wurde). Vielen Dank schon mal im Vorraus. :) PS: Ich verwende einen Atmega8 LEDs an den PORTC 0,1,3,4,5 Tastatur: Zeilen auf PORTD 0-3 Spalten auf PORTD 4-7
Kanst du sicher ausschließen dass die Hardware nicht geht? Haben die LEDs in dieser Konstellation denn schon mal überhaupt geleuchtet?
Bring doch erst mal das original 3x4 zum Läufen! Bis 4x4 ist es da nun ja nicht mehr weit.
Hallo nochmal! Erst einmal Danke für die schnellen Antworten. Tut mir leid, dass ich erst jetzt zurückschreibe, aber ich kann nur Freitags weiterarbeiten. Ich habe die Hardware mit einem einfachem Programm getestet, wo nur eine Led leuchten soll und da hat es funktioniert. Das Keypad müsste auch richtig angeschlossen sein. Habt ihr noch weiter Vorschläge, woran es liegen könnte? Das Original 3x4 Programm habe ich leider nicht gefunden, ich hatte ja nur die veränderte Version von Marc L. Hat da vllt jemand einen Link für mich? Nochmals danke!
Dein Problem ist das hier:
1 | #define KEY0 0 // Taste:
|
2 | #define KEY1 1 // Taste:
|
3 | #define KEY2 2 // Taste:
|
4 | #define KEY3 3 // Taste:
|
5 | #define KEY4 4 // Taste:
|
6 | #define KEY5 5 // Taste:
|
7 | #define KEY6 6 // Taste:
|
8 | #define KEY7 7 // Taste:
|
9 | #define KEY8 8 // Taste:
|
10 | #define KEY9 9 // Taste:
|
11 | #define KEY10 10 // Taste:
|
12 | #define KEY11 11 // Taste:
|
13 | #define KEY12 12 // Taste:
|
14 | #define KEY13 13 // Taste:
|
15 | #define KEY14 14 // Taste:
|
16 | #define KEY15 15 // Taste:
|
Das sollte eher so aussehen:
1 | #define KEY1 (1L << 12)
|
2 | #define KEY2 (1L << 8)
|
3 | #define KEY3 (1L << 4)
|
4 | #define KEY4 (1L << 0)
|
5 | ...
|
Den Rest darfst Du dir selber zurechtdröseln. Dann hast Du auch das Programm verstanden. mfg
Um einen Fehler zu finden, teilt man das Programm auf und läßt sich Zwischenwerte anzeigen. Z.B. gib mal der Wert von key_scan() über die UART oder ein LCD aus. Und wenn das stimmt, geht man weiter. Nicht immer ein Programm als unteilbares Atom ansehen, sonst findet man die Fehler nie. Peter
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.