Gast
#4797249
Hallo, Ich habe an der Seriellen schnittstelle einen ATMEGA168 mit DS3231 hängen. Er ist auf verschiedene Kommandos bei Empfang eines Bytes vom Computer Programmiert: So sollte z.b. bei senden von 'C' durch den Computer die aktuelle Systemzeit des DS3231 zurückgegeben werden. Dass funktioniert auch, problem ist jedoch dass umrechnen dieser als Byte empfangenen Zeit in eine als ASCII darstelbare Zeit. Ich kann die Zeit nicht auswerten, da ich mit den Bitoperatoren nicht zurech komme. Die Auswertung sieht wie folgt aus:
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 | |
Angenommen inhalt[0]='U' oder 85 oder 0x55. Dann wird als AND-Verknüpfung von inhalt[0] und 0x0f = 0 ausgegeben. Ebenso wird sek1 und sek10 = 0. Scheinbar mache ich einen entscheidenden fehler. Erstaunlich ist jedoch, dass bei inhalt[0]='8' oder 56 oder 0x38 tatsächlich 8 für die AND-Verknüpfung des gesamten Bytes mit 0x0f erscheint. Scheinbar scheint PHP inhalt[0] als char zu interpretieren und in ASCII auszuwerten? So etwas habe ich aber nochnie erlebt, und auch einiges suchen brachte bisher keine Erklärung oder Lösungsmöglichkeit.