Re: Výpočet CRC u Dallas teploměru DS18S20
Pavel
hw@itherm.cz
Úterý Leden 12 20:21:37 CET 2010
ten program je opsany nekde z netu, nebo app note, nikdy jsem v podstate
nezkoumal jak funguje.
pouzivam jej i v emulatorech 1wire slave zarizeni a chodi v pohode.
Pavel
----- Original Message -----
From: "Kručinský Ladislav" <ladislav.krucinsky@linde-mh.cz>
To: "HW-news" <hw-list@list.hw.cz>
Sent: Tuesday, January 12, 2010 3:05 PM
Subject: RE: Výpočet CRC u Dallas teploměru DS18S20
Začínám "něco" tušit - proč XORujete hodnotou 0x18 a ne Dallas polynomem
který je 0x31 ?
V nějakém aplikačním listu jsem na tuto hodnotu narazil ale nepochopil jsem
jak vznikla. V HW posuvném registru jsou 3 XOR hradla tak jsem se domníval,
že polynom by měl mít 3 jedničky.
L. Kručinský
-----Original Message-----
From: hw-list-bounces@list.hw.cz [mailto:hw-list-bounces@list.hw.cz] On
Behalf Of Pavel
Sent: Tuesday, January 12, 2010 12:38 PM
To: HW-news
Subject: Re: Výpočet CRC u Dallas teploměru DS18S20
Výpočet CRC u Dallas teploměru DS18S20dole je primo to co mam ve svych
programech.
do W se vkladaji hodnoty
v CRC pak mate vysledek.
Pavel
movwf crctmp ; Save byte
movlw 8 ; 8 bits
movwf crccit ; store counter
movf crctmp,w ; byte to W
CRC8_L1 xorwf crc,w ; xor
movwf del1 ; temp store
rrf del1,w
movf crc,w ; fetch last CRC
skpnc ; if not C, skip
xorlw 0x18 ; xor with fixed
movwf crc ; store new CRC
rrf crc,f ; update new CRC
clrc ; clear carry
rrf crctmp,f ; next bit
movf crctmp,w
decfsz crccit,f ; count bits
goto CRC8_L1 ;
return
----- Original Message -----
From: Kručinský Ladislav
To: HW-news
Sent: Tuesday, January 12, 2010 11:01 AM
Subject: Výpočet CRC u Dallas teploměru DS18S20
Zdravíčko kolegové.
Trápím se tady s výpočtem CRC v procesoru PIC - ačkoliv jsem si stáhl
Aplikační listy jak od Dallasu tak i od Microchipu, nejsem nějak 100
pochopit algoritmus výpočtu pomocí posouvání registru. Nemám kapacitu abych
to řešil tabulkou (je potřeba 256 registrů) a tak tady čmárám po
čtverečkovaných papírech jedničky a nuly a nevychází mi to. Respektive - ze
čtyř Dallas čipů jsem si vyčetl ROM se sériovým číslem, číslem rodiny a CRC.
U dvou mi výpočet funguje, u dvou nikoliv.
Nechci prudit celou konferu ukázkami algoritmu, nedělali jste to někdo v PIC
assembleru ideálně pro PIC16F676 a pod ? Nechci celý program, jenom bych rád
věděl kde to vorám...
Zdravím
Ing. Ladislav Kručinský
_______________________________________________
HW-list mailing list - sponsored by www.HW.cz
Hw-list@list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list
_______________________________________________
HW-list mailing list - sponsored by www.HW.cz
Hw-list@list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list
_______________________________________________
HW-list mailing list - sponsored by www.HW.cz
Hw-list@list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list
More information about the Hw-list
mailing list