Re: Výpočet CRC u Dallas teploměru DS18S20

Martin Záruba swz@volny.cz
Úterý Leden 12 11:25:00 CET 2010


Výpočet CRC u Dallas teploměru DS18S20Pokud by Vam stacil program pro x51 je zde:

Crcv:
 push Acc  ;save bits to be shifted
 mov b,#8  ;set shift = 8 bits ;

crc2: xrl a,CRC  ;calculate CRC
 rrc a  ;move it to the carry
 mov a,CRC  ;get the last CRC value
 jnc nuldat  ;skip if bit = 0
 xrl a,#18H  ;update the CRC value

nuldat: rrc a  ;position the new CRC
 mov CRC,a  ;store the new CRC
 pop Acc  ;get the remaining bits
 rr a  ;position the next bit
 push Acc  ;save the remaining bits
 djnz b,crc2  ;repeat for eight bits
 pop Acc  ;clean up the stack
 ret

Martin Zaruba
  ----- 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
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20100112/0f1a359d/attachment.htm>


More information about the Hw-list mailing list