CRC-kontroll
CRC-kontroll
Någon som kan förklara för mig hur man räknar ut CRC koden på DS18S20, anledningen att jag frågar är att jag läst av den unika adressen på kretsen och blev nyfiken på hur sista byten ska kunna vara en kontrollbyte.
Tja... teorin bakom crc är ganska krånglig (tycker jag i alla fall)
men om du vill göra ett program som räknar ut crc skulle kunna se ut något så här
(sematisk cod)
edit: rätta till coden lite gran.... tips kolla på figur6 i databladet
men om du vill göra ett program som räknar ut crc skulle kunna se ut något så här
(sematisk cod)
Kod: Markera allt
crc en 8bitars variabel (ungsingd)
bitarin en 56bitars variabel
test en bitars variabel
Start
crc = 0
for n = 0 to 55
test = crc(0) xor bitarin(n)
crc = crc >> 1
if test = 1 then
crc = crc xor 0b00001100
end if
end for
Senast redigerad av erixon 24 november 2003, 00:14:16, redigerad totalt 1 gång.