PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : GELÖST: BASCOM CRC8 mit VB nachbilden



darwin.nuernberg
18.08.2006, 20:16
BASCOM CRC8 mit VB.NET(2002) nachbilden

Hallo Leute,
ich suche einen Code,
welcher dem in Bascom verfügbaren CRC8 befehl entspricht:

z.B.
Mit Bascom erhalte ich für die Zeichenkette (STRING) "19930000" den CRC8=211


Irgendwie finde ich keine für mich verständliche Information, wie Bascom diese Prüfsumme erstellt.

Erstmal stellt sich das Probelm wie Bascom aus dem String einen Wert erstellt.

Und dann habe ich keinen blassen schimmer vom Algorithmus des CRC8.

Ich möchte dies für Übertragunssicherheit (RS232) vom PC zum AVR nutzen um damit Fehleingaben/Übertragungsfehler zu unterbinden.

Kann mir jemand helfen?

darwin.nuernberg
19.08.2006, 11:58
Ich habs jetzt per Zufall gefunden:

VB - CODE:

Function Docrc8(ByVal s As String) As Byte
Dim j As Byte
Dim k As Byte
Dim crc8 As Byte
Dim m As Byte
Dim x As Byte

crc8 = 0
For m = 1 To Len(s)
x = Asc(Mid(s, m, 1))
For k = 0 To 7
j = 1 And (x Xor crc8)
crc8 = Fix(crc8 / 2) And &HFF
x = Fix(x / 2) And &HFF
If j <> 0 Then
crc8 = crc8 Xor &H8C
End If
Next k
Next
Docrc8 = crc8
End Function

der Code war auf meiner mir bisher noch nicht bekannten Sub-Seite versteckt:
http://avrhelp.mcselec.com/bascom-avr.html?CRC8

Die Variablen 'm' und 'x' waren nicht deklariert und ich habe diese(pauschal) als Byte deklariert. Kann sein, dass diese für längere Zeichenketten (Strings) entspr. andere Dimensionen (INT16, INT32, INT64) benötigen.


Das geht mir meisten so...
erst suche ich mir einen Wolf,
dann finde ich was, was ich nicht verstehe oder was meilenweit an dem vorbei geht was ich möchte,
dann schreibe ich aus lauter Verzweiflung einen Forum - Eintrag
und kurzdarauf finde ich dann doch was.
Schicksal?