Benutzerhandbuch
CRC8-Beispielcode:
unsigned char CalcCRC8(unsigned char *Data)
berechnen
{
unsigned char LoopCntr;
unsigned char CRC8;
unsigned char A;
unsigned char i;
CRC8 = 0;
for (i = 0; i < 8; i++){
A = *Data++;
abfragen
for (LoopCntr = 0; LoopCntr < 8; LoopCntr++, A >>= 1){ // 8-Bit-Schleife
if ((A ^ CRC8) & 0x01){
CRC8) testen
CRC8 ^= 0x18;
CRC8 >>= 1;
CRC8 |= 0x80;
}else
CRC8 >>= 1;
}
}
return CRC8;
// Bit 0 von (OneWire.Data XODER
// Bits 3 und 4 von CRC8 umwechseln
// CRC8, 1 Mal nach rechts drehen
// Bit 7 von CRC8 einstellen
// CRC8, 1 Mal nach rechts drehen
- 46 -
//
8-Bit
CRC
// CRC8 zurücksetzen
// Datenschleife
//
ersten
Datenbyte