Hallo Forum, ich bemühe mich schon seit längerem über die serielle Schnittstelle eine Kommunikation zu einem Mikrocontroller herzustellen. Ich glaube fast, daß ich in jede Falle tappe die es hier zum erwischen gibt.
Zu meinem Problem: Ich möchte einen DEZ-Wert von 0 bis 65535 (also 2 Byte) über den Seriellen Port Byte für Byte senden und der MC soll diese empfangen. Soweit so gut. Also von 1 bis 65535 kein Problem mit folgender Zeile:
echo -en "\$6"$(printf \\$(printf "%o" "129"))$(printf \\$(printf "%o" "$temp1"))$(printf \\$(printf "%o" "temp2"))
Zuerst wird der Befehl gesendet, ein Befehl wird mit dem Zeichen "$" eingeleitet, dann die Befehlsnummer "6" und die Unterbefehlsnummer "129d" und danach der Wert zwischen 0 und 65535d.
Ich wandle also erst jede Zahl in Dezimal kleiner 256 um und sende diese dann als CHR$ über die serielle Schnittstelle. Etwas kompliiziert vielleicht, aber der einzige Weg der bei mir funktioniert.
Um jetzt eine Zahl zwischen 0 und 65535 zu versenden, teile ich die Zahl zuerst MODULO duchr 255, damit bekomme ich den Low-Anteil (temp1) und dann teile ich die Zahl einfach durch 255 und bekomme den High-Anteil (temp2).
Funktioniert soweit prima, bis auf, wenn ein Anteil 0 ist wird er nicht übertragen.
Dagegen, wenn ich an der Shell folgendes eingebe, funktioniert die Übertragung der Zahl Null
Kann mir jemand weiterhelfen?