Intputbin - ein paar Fragen...
Hallo!
Ich möchte von einem Gerät (µC oder PC) Daten zu einem Mega32 übertragen. Das ganze muss so schnell wie möglich und für den Empfänger so ressourcenschonend wie möglich geschehen.
Übertragen möchte ich folgende Bytes:
Motor1Soll Motor2Soll Motor3Soll Checksumme
Die Checksumme wäre z.B. einfach Motor1Soll+Motor2Soll+Motor3Soll, oder?
Was aber wenn die Checksumme durch die Addition größer als 255 wird...?
Ich habe noch mehr Verständnisprobleme:
Wenn ich im µC die Daten so abfrage:
dim Message(4) as Byte
If Ischarwaiting() > 0 Then
Inputbin Message(1) , 4
End If
dann werden immer 4 Bytes eingelesen. Falls aber irgendwann mal eins verschluckt wurde, dann bleibt das ganze dauerhaft verschoben, richtig?
Und wenn zufällig mal 2 Bytes gesendet werden und danach gar nichts mehr, dann wartet der Empfänger ewig bis die fehlenden 2 Bytes nachgereicht werden.
Wie löst man diese Probleme programmiertechnisch...? Da steht grad jemand ziemlich auf meiner Leitung...
Re: Intputbin - ein paar Fragen...
Zitat:
Zitat von Willa
Hallo!
Was aber wenn die Checksumme durch die Addition größer als 255 wird...?
Macht nichts, das passiert beim Empfangen ja auch. Also einfach den Byte-Wert übertragen.
Zitat:
Zitat von Willa
Ich habe noch mehr Verständnisprobleme:
Wenn ich im µC die Daten so abfrage:
dim Message(4) as Byte
If Ischarwaiting() > 0 Then
Inputbin Message(1) , 4
End If
Ich mach's immer so:
While Ischarwaiting() > 0
var=inkey()
Wend
Wenn nichts mehr vorliegt, fliegt er aus der Schleife raus.
Gruß
Rolf