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 ?