- fchao-Sinus-Wechselrichter AliExpress         
Ergebnis 1 bis 3 von 3

Thema: CRC von Bascom in vb.net

  1. #1
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.09.2007
    Ort
    Berlin
    Alter
    31
    Beiträge
    1.578

    CRC von Bascom in vb.net

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo,

    für mein derzeitiges Teilprojekt benötige ich unter vb.net eine CRC8-Implementierung. In der Bascom-Hilfe steht folgendes:
    Code:
    The code below shows a VB function of CRC8
    
     
        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
    Ich möchte einfach ein Bytearray überprüfen. Jedoch weiß ich nicht, wie und auf welche Weise ich das Array in einen String umwandeln muss? Habs so probiert:
    Code:
    Dim _input(9) As Byte
    Dim Crc_string As String
    ...
    Crc_string = Str(_input(1))
    For I As Byte = 2 To 8                                           
       Crc_string = Crc_string + Str(_input(i))                
    Next
    Crc8 = Docrc8(crc_string)
    Jedoch kommt dann bei Bascom was anderes raus als bei vb.net... Könnte mir jemand helfen?

    Vielen Dank & Gruß
    Chris

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    01.10.2009
    Beiträge
    437
    Warum so kompliziert ?
    An dieser Stelle der CRC8:
    Code:
    For m = 1 To Len(s)
      x = Asc(Mid(s, m, 1))
    wird aus dem String ein einzelnes Zeichen geholt und in ein Byte umgewandelt. Bei einem Bytearry dagegen holt man sich einfach das Byte, ohne irgendwelche Dinge konvertieren zu müssen, also brauchst Du nur noch zu schreiben:
    Code:
    For m = 1 To 9
      x = _input(m)
    ' ...
    Würde mir auch Variablennamen beginnend mit Unterstrich verkneifen, das verwendet der Bascom-Compiler um interne Variablen zu kennzeichnen.

  3. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.09.2007
    Ort
    Berlin
    Alter
    31
    Beiträge
    1.578
    Hey, danke! Du hast natürlich Recht, die Funktion ist für Strings geschrieben. Habs jetzt ein bisschen abgeändert und so funktionierts. Danke nochmal

Ähnliche Themen

  1. USB ASP mit Bascom nutzen? bzw AVRDUDE in Bascom eirichten?
    Von dremler im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 4
    Letzter Beitrag: 09.04.2008, 16:35
  2. wie aus bascom *.bas eine bascom lib machen ????
    Von DarkBeast im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 8
    Letzter Beitrag: 08.12.2007, 19:10

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test