Gast
#3498754
Hallo, ich arbeite grade mit einem Arduino auf ATMega328p Basis. Ich will zur Zeit lernen ein wenig maschinennaher zu programmieren. In meinem Anwendungsfall habe ich einen 3 zu 8 Multiplexer. Daran sind 6 Taster geklemmt. Ich habe zunächst über die Arudino Library-Funktionen die Pins PD8, PD9 und PC0 als Ausgänge und den Pin PC1 als Eingang deklariert. Die drei Ausgänge steuern den Multiplexer, der PC1 soll die Info abgreifen. Folgende Belegung: s0 - PD8 s1 - PD9 s0 - PC0 Das ganze habe ich in eine Funktion gegossen. Interessant ist für meinen Fall nur der Case 2.
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
Wenn ich über die Funktion zum Testen nur einen Knopf überwache und mir über die serielle Schnittstelle das Ergebnis anzeigen lasse, kriege ich scheinbar richtige Ergebnisse. Ich kann sehen, wann ich den Knopf drücke und wann nicht. Wenn ich die Funktion aber für alle sechs Knöpfe durchgehend abfrage, passieren komische Sachen. Wenn ich beispielsweise den Knopf an Pin 0 des Multiplexers drücke, wird mir angezeigt, dass alle Knöpfe außer dem an Pin 2 betätigt wurden. An Pin 2 und Pin 3 scheint alles ok. Pin 5 wird garnicht erkannt. Kann mir da wer helfen? In Case 1 sieht man übrigens ein Lösung über Arduino Funktionen. Die läuft auch super. Das ist aber nicht mein Ziel. Wie setze ich also für einen vorgegebenen Pin meine Registereinträge so, dass ich anschließend den Multiplexer richtig auslesen kann?