Cara, se vc quiser acho que vc deve dar uma olhada neste codigo em BASIC para PIC. Com ele dá para fazer uma melhor aproximação para o Pascal.
symbol CRCPOLY = $1021 ' CRC-CCITT symbol CRC = w0 ' CRC Word symbol Lo_CRC = b0 ' CRC Lo_Byte symbol Hi_CRC = b1 ' CRC Hi_Byte ' -----[ Subroutines ]------------------------------------------------ ' ' Subroutine for calculating CRC value in variable byte calc_crc: CRC = Byte * 256 ^ CRC for temp = 0 to 7 if Bit15 = 0 then shift_only CRC = CRC * 2 ^ CRCPOLY goto nxt shift_only: CRC = CRC * 2 nxt: next return ' -----[ End ]-------------------------------------------------------- Dá uma olhada nesste site tb: http://www.hth.com/snap/ Mas é importante voce saber também de quants bits estamos falando neste CRC, OK. Até mais 2009/9/2 José Luis Fernandes Rezende <ze...@yahoo.com.br> > duBRASIL InformáticaOlá Pessoal, > > Estou com um problema, tenho a função abaixo escrita em C e esta é > executada num equipamento (data Logger) por um processador da > família do 8051. > > /**************************************************** > uchar CalcCksum(uchar *buf) > { > uchar i, byCksum = 0; > > for(i = 0; *(buf + i) != ETX; i++) > byCksum ^= *(buf + i); > > byCksum ^= ETX; > return byCksum; > } > /**************************************************** > > Preciso fazer este mesmo cálculo no Delphi, pois estou desenvolvendo > um software para substituir este data logger por um PC. > > Nunca programei em C, não faço a menor idéia de funcionalidades que > acredito serem básicas, como o uso dos caracteres/operadores *, ^=. > > Alguém sabe/pode destrinchar esse caso para mim? > > Desde já, obrigado pela atenção! > > José Luis Rezende > > [As partes desta mensagem que não continham texto foram removidas] > > > > ------------------------------------ > > -- > <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> > > > > [As partes desta mensagem que não continham texto foram removidas]