RE: Výpočet CRC u Dallas teploměru DS18S20
Kručinský Ladislav
ladislav.krucinsky@linde-mh.cz
Středa Leden 13 09:42:05 CET 2010
To vypadá velmi dobře. Zkusím si s tím pohrát, vám to vrací v registru "CRC" hodnotu toho cyklického kódu kterou pak porovnáte s posledním slovem z Dallasu nebo už to vrátí CRC = 0 = OK jinak chyba ?
L. Kručinský
-----Original Message-----
From: hw-list-bounces@list.hw.cz [mailto:hw-list-bounces@list.hw.cz] On Behalf Of Radek Benedikt
Sent: Tuesday, January 12, 2010 8:17 PM
To: HW-news
Subject: Re: Výpočet CRC u Dallas teploměru DS18S20
Dne úterý 12 leden 2010 11:01 Kručinský Ladislav napsal(a):
> 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...
Sice to bude od typickeho '51 fandu dost divne znit, kdyz rekne ze na neco jsou ty PICy preci jen pouzitelne a trosku se zacne plest PICarum do remesla, ale "koledoval" jsi si o to. Ja to mam v PIC klonu S18S20 udelane, aby to bylo jeste slozitejsi a magictejsi bez rotaci s troskou vice te magie.
vlastni crc8:
;; CRC table for Dallas 8-bit CRC calculations from App. Note #27 ;; x8 + x5 + x4 + 1 ;; 18JAN03 - T. Scott Dattalo
crc_8 xorwf crc,f
clrw
btfsc crc,0
xorlw 0x5e
btfsc crc,1
xorlw 0xbc
btfsc crc,2
xorlw 0x61
btfsc crc,3
xorlw 0xc2
btfsc crc,4
xorlw 0x9d
btfsc crc,5
xorlw 0x23
btfsc crc,6
xorlw 0x46
btfsc crc,7
xorlw 0x8c
movwf crc
return
volani pak vypada napr. takto:
crcscratch clrf crc
movlw .8 ; crc scratch0..scratch7
movwf tmp0
movlw scratch0
movwf FSR
; bcf STATUS,IRP
crcsc movf INDF,w
call crc_8
incf FSR,f
decfsz tmp0,f
goto crcsc
movwf scratch8
return
Radek
_______________________________________________
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