Zitat Zitat von Peter(TOO) Beitrag anzeigen
Man braucht also etwas in der Form:
.... Byte, sync, Byte, Byte, sync, Byte, Byte ....
Dann weiss man, dass immer die zwei Bytes nach sync ein Paar bilden.
ok habe ich nun auch endlich verstanden. Da sonst endlos Bytes übertragen werden ohne dass der Empfänger weiß wo Anfang und Ende ist... so ist eine Addition natürlich sinnfrei (logisch). Ich dachte leider bislang, dass dies der UART bei den AVR´s automatisch erledigt, allerdings ging ich auch fälschlicherweise davon aus, dass ich den USART verwende (was mit jetzt aber klar ist).

für das "Protokoll" hat HaWe ja eine gute Lösung für seinen Rpi/Arduino:


Zitat Zitat von HaWe Beitrag anzeigen

uint8_t msgarr[4];

msgarr[0] = 0xff;
msgarr[1] = chksum(); // Zellen 2+3 aufaddieren, dann davon lowbyte bilden
msgarr[2]= ... dein erstes Daten-Byte
msgarr[3]= ... dein zweites Daten-Byte

beim Empfang kontrollieren:

if((msgarr[0]==0xff) && msgarr[1]== chksum())) {...} // hier jetzt Bytes zu Int zusammensetzen und dann zum Display schicken.

ich fange an den Sender mit dieser Methode aufzubauen und der Code sieht nun in diesem Ausschnitt folgendermaßen aus:

uint8_t msgarr[4];

msgarr[0] = 0xff;
msgarr[1] = chksum(); // Zellen 2+3 aufaddieren, dann davon lowbyte bilden
msgarr[2]= zahl >> 8;
msgarr[3]= zahl & 0xff;

daten_senden(msgarr);


Eine Frage habe ich noch zur Funktion chksum()... was beinhaltet diese bzw. welche Zellen 2+3 sind hier gemeint? Die Inhalte 2+3 vom Array oderwie?

Wenn mir das noch klar ist habe ich meinen Fehler "fehlendes Protokoll/Sync" beim Byte übertragen auch verstanden und mach mich an den Empfänger.

Danke für euren Support! Hat mir rein vom Verständnis her schon viel gebracht und versuche dies umzusetzen.