Ich habe folgende Funktion:
Code:
inline uint8_t CreateChecksum()
{
uint8_t CheckSum = 0;
for(int j = 1; j <4; j++)
{
for(int i = 0; i < 8; i++)
{
int bit = (uartbuffer[j] & (1<<i)) >> i;
if(bit ==1)
{
CheckSum += (uint8_t)(1 * i);
}
}
}
return CheckSum;
}
Diese Funktion berechnet eine Checksumme aus 3 Arrayfelder, aus meinem uartbuffer. Die Checksumme wird über den UART zurückgesendet um zu überprüfungen ob die Daten korrekt übertragen wurden.
Dabei wird für jedes Bit das 1 ist die Schleifenvariable zur Checksumme dazu addiert.
Kann man das ganze eventuell noch optimieren ?
Lesezeichen