mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik crc


crc
Autor: Nordi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, bin fast am verzweifeln. Ich versuche die CRC Berechnung aus 47 
Bit bei einem selbst bestimmten, festem Generalpolinom mit Bascom 
hinzubekommen.
C Beispiele hab ich schon einige gefunden, aber mangels C-Kenntnissen 
bekomme ich die Übersetzung zum Bascom-Basic nicht wirklich hin. Bin für 
jeden Tip dankbar,
Gruß Nordi

Autor: MR (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Var = CRC32( source , L)

Autor: Nordi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke, damit habe ich auch schon herumprobiert. Aber wie kann ich denn 
da mein Generatorpolynom mit einbinden? Im der Bascom Hilfe steht auch 
nichts weiter zu dem Thema.
Hatte ich eben vergessen, das Generatorpolynom besteht aus 8 Bits.

Autor: MR (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dim Polynom(4) As Long
DIM Ergeb as Long

Ergeb = Crc32(polynom(1) , 4)

Autor: Nordi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn ich das richtig verstanden haben, Teile ich meine Daten, Nutzdaten 
+ Rest in die Arrays, nur was mach ich mit meinem Generatopolynom, 
irgendwie raff ich das Bascom Sample nicht. Wo wird das verwendet um zu 
guter letzt Rest 0 zu erhalten. M.E. beutzt Bascom ein eigenes 
Generatorpolynom. Oder verstehe ich das falsch?


101101110110......->40 bit Nutzdaten + 7 bit Rest
11010101             Generatorpolynom
--------
011000100
 11010101
 --------
 00010001
...

Autor: MR (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
die daten werden Xor verknüpft

Function Docrc8(s As String) As Byte
Dim j As Byte
Dim k As Byte
Dim crc8 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

Autor: Nordi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Komme damit nicht klar, liegt vielleicht daran das es ein VB Sample ist?

Auf Papier weiß ich ja was ich zu tun habe, ich bekomme es nur nicht ins 
Basic...



Keiner nen praktischen Rat ohne Bascom-Mittel so etwas zu machen.

Autor: Obelix (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich verstehe dich nicht. Du bekommst es auf dem Papier manuell hin, aber 
in Basic schaffst du es nicht? Da geh dein Programm Schritt für Schritt 
durch und sch wo die Abweichung zu deiner Rechnung auf dem Papier ist, 
und schon hast du den Fehler.

Nebenbei: Höchste Zeit C zu lernen.

Autor: Nordi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nebenbei: Höchste Zeit C zu lernen.

Das trifft den Nagel auf den Kopf.
Leider steht hinter dem Wort höchste noch das Wort Zeit, welche ich im 
Moment leider fast gar nicht habe.

Ich werd´s mal weiterversuchen. Danke allen.

Autor: Obelix (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
:-D Dann lass das Zeit - "HohesC" zu lernen :-D

Autor: Obelix (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
oder zu trinken

Autor: MR (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
C tut weh

Autor: MR (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich glaube ich habe es jetzt einigermaßen verstanden.
das Polynom wird mit den daten "und" and verknüpft.
dann werden die daten von rechts nach links verschoben shift.
dann xor verknüft bis die ganzen daten durch sind,der rest verbleibt im 
schiebe register.

Autor: Nordi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@MR ja, so soll´s aussehen,
so klappt das auch mit´m Stift auf´m Papier, nur noch nicht so recht in 
Basic. Hab das genauso auch im Kopf, nur das darauf auf´nen AVR zu 
bekommen ist bei mir manchmal etwas schwer weil ich einfach zu 
kompliziert denke, wie ich meine auch in diesem Fall.

Autor: MR (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich werde mal morgen wenn ich zeit habe versuchen eine funktion zu bauen
stelle denn bas-code dann in das andre forum hier laufen nur C 
fetischisten rum Loool

Autor: Nordi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Manchmal hat man nur Scheuklappen auf, hat sich erledigt, c wird doch 
nochmal etwas verschoben.
Gruß Nordi

Autor: MR (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wie haste den bas-code fertig ?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.