Gast
#792687
Hallo allerseits. Als neues Lernprojekt habe ich mir zum Ziel gesetzt mal was mit einem DS1621 zu machen. Da sich dort die Fehlersuche aber imho schwierig gestaltet, habe ich mit der Porterweiterung PCF8574 angefangen. Schreiben auf den Baustein funktioniert. Die Lesefunktion hängt noch. Problem an der Stelle: Die Wertigkeit der Pins ist um 1 Bit verschoben: - An P0 lese ich 2 aus - P1 gibt 4 zurück - P2 gibt 8 zurück usw ... - P1 + P2 gleichzeitig ergibt 6 (2+4 ...) Also im Ansatz liege ich wohl richtig. Ich finde nur nicht wo sich dieses verlorene Bit versteckt hat :-/ Im Anhang ist der komplette I2C-Code. Mir ist bewusst, dass es dort noch sehr viel Verbessrungspotential gibt. (Z.B. etliche delays rausschmeissen ...) Hier mal direkt die Lesefunktion:
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 | |
26 | |
27 | |
28 | |
29 | |
30 | |
31 | |
Es würde mich sehr freuen, wenn sich Jemand mal den Code anschauen würde und mir hoffentlich sagen kann an welcher Stelle ich ein Brett vorm Kopf hatte/ habe. Grüße, Alexander