Sida 1 av 1

CRC-kontroll

Postat: 23 november 2003, 18:01:33
av tusse
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.

Postat: 23 november 2003, 19:30:11
av erixon
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)

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 
edit: rätta till coden lite gran.... tips kolla på figur6 i databladet