Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Praktische Informatik » Algorithmen » CRC16 Buypass berechnen » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen CRC16 Buypass berechnen
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Ulrich
unregistriert
CRC16 Buypass berechnen Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Guten Morgen,
ich hoffe ihr könnt mir bei meinem Problem weiterhelfen.

Bei einer RS232 Kommunikation muss jeder Befehl mit einer CRC16 Checksumme abgesetzt werden. Da ich mein Projekt in VBA schreibe finde ich leider keinen Ansatz um auf das richtige Ergebnis zu kommen. Alle bisherigen Codebeispiele liefern leider keine richtigen Ergebnisse. Ich tippe darauf, dass man den Code evtl auf Buypass umstellen müsste, was mir leider nicht gelingt. Bin kein Informatiker und deswegen hoffe ich, ihr könnt mir dabei helfen.

mein bisheriger Code sieht wie folgt aus:
code:
1:
Private Sub Befehl137_Click()    Dim data(1) As Byte     data(0) = 4    data(1) = 80    MsgBox "Crc16 = " & Hex$(CRC_CCITT2(data, True)) End Sub


code:
1:
Public Function CRC_CCITT2(btArrX() As Byte, _     bolLOFirst As Boolean) As Long     Dim lngCRC As Long     Dim lngPolynom As Long     Dim x As Long     Dim y As Long     Dim bolB1 As Boolean     Dim bolB2 As Boolean     Dim lngArr2(15) As Long     Dim lngCRC2 As Long     Dim btArr() As Byte         ReDim btArr(UBound(btArrX) + 2)      For x = 0 To UBound(btArrX)         btArr(x) = btArrX(x)     Next     btArr(x) = &H0     btArr(x + 1) = &H0      For x = 0 To 15         lngArr2(x) = 2 ^ x     Next      lngPolynom = &H8005&      For x = 0 To UBound(btArr)         For y = 0 To 7             bolB1 = lngCRC > &H7FFF&             bolB2 = btArr(x) And lngArr2(y)             lngCRC = lngCRC And &H7FFF&              lngCRC = lngCRC * 2             If bolB2 Then                 lngCRC = lngCRC + 1             End If             If bolB1 Then                 lngCRC = lngCRC Xor lngPolynom             End If         Next     Next      If bolLOFirst Then         For x = 0 To 15             If lngCRC And lngArr2(x) Then                 lngCRC2 = lngCRC2 + lngArr2(15 - x)             End If         Next         CRC_CCITT2 = lngCRC2     Else         CRC_CCITT2 = lngCRC     End If  End Function


Mit einem online CRC16 Rechner habe ich bereits einen Screenshot erstellt damit ihr wisst was rauskommen muss

Ulrich hat dieses Bild (verkleinerte Version) angehängt:
crc16.jpg

24.02.2017 08:48
Ulrich
unregistriert
Link Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hier noch ein Link zum Online Rechner

sunshine2k.de/coding/java...rc/crc_js.html
24.02.2017 08:51
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Praktische Informatik » Algorithmen » CRC16 Buypass berechnen