Ich habe folgende Funktion:
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.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; }
Dabei wird für jedes Bit das 1 ist die Schleifenvariable zur Checksumme dazu addiert.
Kann man das ganze eventuell noch optimieren ?
Lesezeichen