Toon posts:

[vb6] CRC 16 CCITT berekening in vb

Pagina: 1
Acties:
  • 327 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Ik moet een crc berekenen volgens het CCITT polynoom.
polynoom x^16 + x^12 + x^5 + 1
Startwaarde: FFFF

Ik heb de volgende Visual basic routine gevonden, maar de antwoorden die eruit komen zijn niet in overeenstemming met de waarden die ik uit de crc calculator op deze pagina krijg:
http://rcswww.urz.tu-dresden.de/~sr21/crc.html

Heb net een uitgebreide tutorial over crc gelezen, maar ik begrijp nog steeds niet wat er nou pecies gebeurd in deze code:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Public Function CRC16A(Buffer() As Byte) As Long
Dim I As Long
Dim Temp As Long
Dim CRC As Long
Dim J As Integer
    For I = 0 To UBound(Buffer) - 1
        Temp = Buffer(I) * &H100&
        CRC = CRC Xor Temp
           For J = 0 To 255
                If (CRC And &H8000&) Then
                    CRC = ((CRC * 2) Xor &H1021&) And &HFFFF&
                Else
                    CRC = (CRC * 2) And &HFFFF&
                End If
            Next J
    Next I
    CRC16A = CRC And &HFFFF
End Function


Kan iemand me op weg helpen met een tip?
De string waarover ik crc moet berekenen is een hex string van 12 bytes (24 tekens dus)

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 31-03 00:07
O.a. op Modbus.org is een pdf te vinden die haarfijn uitlegt hoe je een CRC berekent. Het is overigens ook mogelijk om het mbv een lookup tabel te doen. Scheelt je weer een aantal cycles :)

[ Voor 38% gewijzigd door farlane op 03-09-2004 20:02 ]

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.