Hallo Zusammen
Ich möchte periodisch einen 2 byte Wert von einem uC an den PC senden. Ich habe vor aus den beiden Bytes eine Checksumme zu berechnen und dann das ganze an den PC zu senden. Nun bin ich zurzeit absolutverwirrt wie und was sinn machen würde... Die beiden Werte liegen in einem uint8_t array, die beiden Checksummenbytes sind allerdings vom typ char.
Soll ich nun per utoa alles in ein buffer char array schmeissen und dann als string senden? Ich bin gerade etwas verwirrt bezüglich der Datentypen und ascii...
Irgendsowas habe ich mir vorgestellt, aber mittlerweile seh ich nicht mehr durch... Was würde da in meinem Beispiel am PC ankommen?
Code:
uint8_t databuffer[10];
char Sendbuffer[20];
char hex[16] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };
int checksum = 0xFF;
char checksum1, checksum2;
int x = 0;
databuffer[0] = 10;
databuffer[1] = 20;
//Checksumme berechnen
for (i = 2; i>= 1; i--)
{
checksum ^= databuffer[x];
x++;
}
checksum1 = hex[checksum / 16];
checksum2 = hex[checksum % 16];
databuffer[x] = checksum1;
x++;
databuffer[x] = checksum2;
utoa(databuffer,Sendbuffer,10);
uart_Sendstring(Sendbuffer);
Wie macht man so was in "wirklichkeit"? Macht mein Code überhaupt sinn??
Lesezeichen