<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>Výpočet CRC u Dallas teploměru DS18S20</TITLE>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-2">
<META content="MSHTML 6.00.2800.1642" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face=Arial size=2>Pokud by Vam stacil program pro x51 je
zde:</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Crcv:<BR> push Acc ;save bits
to be shifted<BR> mov b,#8 ;set shift = 8 bits
;</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>crc2: xrl a,CRC ;calculate
CRC<BR> rrc a ;move it to the
carry<BR> mov a,CRC ;get the last CRC
value<BR> jnc nuldat ;skip if bit =
0<BR> xrl a,#18H ;update the CRC value</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>nuldat: rrc a ;position the
new CRC<BR> mov CRC,a ;store the new
CRC<BR> pop Acc ;get the remaining
bits<BR> rr a ;position the next
bit<BR> push Acc ;save the remaining
bits<BR> djnz b,crc2 ;repeat for eight
bits<BR> pop Acc ;clean up the
stack<BR> ret</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Martin Zaruba</FONT></DIV>
<BLOCKQUOTE
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
<DIV style="FONT: 10pt arial">----- Original Message ----- </DIV>
<DIV
style="BACKGROUND: #e4e4e4; FONT: 10pt arial; font-color: black"><B>From:</B>
<A title=ladislav.krucinsky@linde-mh.cz
href="mailto:ladislav.krucinsky@linde-mh.cz">Kručinský Ladislav</A> </DIV>
<DIV style="FONT: 10pt arial"><B>To:</B> <A title=hw-list@list.hw.cz
href="mailto:hw-list@list.hw.cz">HW-news</A> </DIV>
<DIV style="FONT: 10pt arial"><B>Sent:</B> Tuesday, January 12, 2010 11:01
AM</DIV>
<DIV style="FONT: 10pt arial"><B>Subject:</B> Výpočet CRC u Dallas teploměru
DS18S20</DIV>
<DIV><BR></DIV><!-- Converted from text/rtf format -->
<P><FONT face="Arial CE" size=2>Zdravíčko kolegové.</FONT> <BR><FONT
face="Arial CE" size=2>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.</FONT></P>
<P><FONT face="Arial CE" size=2>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...</FONT></P>
<P><FONT face=LindeDaxOffice size=2>Zdravím</FONT> </P>
<P><FONT face=LindeDaxOffice size=2>Ing. Ladislav Kručinský</FONT> </P><BR>
<P>
<HR>
<P></P>_______________________________________________<BR>HW-list mailing
list - sponsored by
www.HW.cz<BR>Hw-list@list.hw.cz<BR>http://list.hw.cz/mailman/listinfo/hw-list<BR></BLOCKQUOTE></BODY></HTML>