Seite 1 von 1
CRC-CCITT(xmodem)
Verfasst: 19.05.2010 21:22
von heitronic
Suche einen für CRC-CCITT(xModem) habe ein gerät zum ansprechen das verlangt
• CRC-CCITT
• Polynomial = x^16 + x^12 + x^5 + 1
• Initial crc register = 0x0000
To calculate the CRC protected message packets for the ‘Reset device’ command…
TX : [ 40 ] [ 0 ] [ crc_lsb ] [ 1 ] [ crc_msb ]
RX : [ 1 ] [ 0 ] [ crc_lsb ] [ 0 ] [ crc_msb ]
ich kann die bytes nicht erstellen bzw. wenn ich einlese sind die bytes nicht richtig
Re: CRC-CCITT(xmodem)
Verfasst: 19.05.2010 22:10
von 7x7
und was willst du jetzt genau wissen?
Re: CRC-CCITT(xmodem)
Verfasst: 20.05.2010 08:25
von heitronic
ich suche einen Code wie ich dieses berechnen kann
obige übertragung soll ausgerechnet lauten
TX crc = CRC( 40, 0, 1 ) = 3F46 hex
RX crc = CRC( 1, 0, 0 ) = 3730 hex
habe hier im forum einen code teil gefunden aber irgendwie funktioniert die berechnung nicht auch wenn ihn abändere
Code: Alles auswählen
#CRC16POLY = $1021
Procedure CRC16(*MEMStart.BYTE, L)
Protected P, k, MyCRC = $0000
;
While L
P = *MEMStart\b & $FF
For k = 1 To 8
If (P ! MyCRC) & 1 = 1
MyCRC >> 1
MyCRC ! #CRC16POLY
MyCRC & $FFFF
Else
MyCRC >> 1
EndIf
P >> 1
Next
*MEMStart + 1
L - 1
Wend
ProcedureReturn MyCRC
EndProcedure
Edit by NicTheQuick: Code-Tags korrigiert
Re: CRC-CCITT(xmodem)
Verfasst: 20.05.2010 10:36
von 7x7
Schau mal hier:
zyklische Redundanzprüfung.
Dein oben gefundener Code liefert vermutlich nur das gewüschte Ergebnis, wenn du die korrekten Nutzdaten übergibst.
Re: CRC-CCITT(xmodem)
Verfasst: 20.05.2010 14:28
von WPö
Siehe auch
http://www.maxim-ic.com/appnotes.cfm/an_pk/27. Ab da kannst Du Dich weiterhangeln.
Gruß - WPö