ich habe mich mal daran versucht, bekomme aber kein richtiges Ergebnis.
Da haperts wahrscheinlich noch an der Übersetzung C->BASCOM...
mein bisheriger Fortschritt:
Code:
$regfile = "m32def.dat"
Declare Function Crc_sae(byref Datapointer As Word , Byval Datalength As Byte) As Byte
Dim Ar(10) As Byte , Pointer As Word
Dim Crc As Byte
Ar(1) = &HB2
Ar(2) = &HD0
Ar(3) = &HE0
Ar(4) = &H70
Ar(5) = &H00
Ar(6) = &H00
Ar(7) = &H00
Ar(8) = &H00
Ar(9) = &H00
Ar(10) = &H00
Pointer = Varptr(ar(1))
Crc = Crc_sae(pointer , 10)
Print Crc
End
Function Crc_sae(byref Datapointer As Word , Byval Datalength As Byte) As Byte
Dim Temp As Byte , Temp2 As Byte
Dim I As Byte , J As Byte , Crc_reg As Byte , Poly As Byte
Crc_reg = &HFF
For I = 1 To Datalength
Temp = Inp(datapointer)
Incr Datapointer
For J = 7 To 0 Step -1
If Temp.j = 1 Then
Temp2 = Crc_reg And &H80
If Temp2 <> 0 Then
Poly = 1
Else
Poly = &H1C
End If
Shift Crc_reg , Left , 1
Crc_reg = Crc_reg Or 1
Crc_reg = Crc_reg ^ Poly
Else
Poly = 0
Temp2 = Crc_reg And &H80
If Temp2 <> 0 Then Poly = &H1D
Shift Crc_reg , Left , 1
Crc_reg = Crc_reg ^ Poly
End If
Next
Next
Crc_reg = Not Crc_reg
Crc_sae = Crc_reg
End Function
mfg
Lesezeichen