Español
Fuente/ Codesnippets

CRC16-Checksummen-Streamtest

 

p.specht

Un Erweiterung des ya behandelten CRC-8 Prüfsummenverfahrens en 16 bit-Words. Im Gegensatz a otro Verfahren se hier no en vorberechnete Polynomtabellen zurückgegriffen, pero lo voluntad Shiftbefehle benutzt. Reine Demo para private Zwecke - lo dürften Rechte Dritter existieren!
CLS
' DEMO ONLY! NO WARRANTY WHATSOEVER! ALL RIGHTS APPLY TO THEIR RESPECTIVE OWNERS!
def &IBM = $A001' Used by Bisync, Modbus, USB, ANSI X3.28, SIA DC-07, ...
def &CCITT=$8408' Used by X.25, V.41, HDLC FCS, XMODEM, Bluetooth, PACTOR, SD
def &SCSI =$EDD1' Used by SCSI
Def %CRC16POLY &CCITT' $18 wäre z.B. X^8+X^5+X^4+X^0
Var CRC16_Sp% = 0' CRC16 Speicher

proc CRC16_berechnen :Parámetros crc_data%' Übergabe Daten

    Var bit_counter% = 16' Schleifendurchlauf
    Var feedback_bit% = 0' Bit Rückgabe

    mientras que bit_counter% > 0' 8x Durchläufe

        feedback_bit% = Xor(CRC16_Sp%,crc_data%) & $01' XOR en 1 überprüfen

        if feedback_bit% = $01' si 1, entonces...

            CRC16_Sp% = Xor(CRC16_Sp%,%CRC16POLY)' XOR con Poly

        EndIf

        CRC16_Sp% = (CRC16_Sp% >> 1) & $7FFF' Shift rechts & 32767  '$7F=247  <<<<<<

        if feedback_bit% = $01' si 1, entonces...

            CRC16_Sp% = CRC16_Sp% | $8000' 32768    'ODER 128   <<<<<<<<<<<<<<<

        EndIf

        crc_data% = crc_data% >> 1' Daten Shift rechts
        Dec bit_counter%' Schleifendurchlauf -1

    EndWhile' Ende Endlosschleife

ENDPROC

Testaufruf:
CRC16_Sp% = 0' Reset CRC8 Speicher

WhileLoop 0,2^16-1, 7' Chr$(0)+Chr$(0) a Chr$(255)+Chr$(255) durchlaufen con Step 7

    CRC16_berechnen(&Loop)' CRC berechnen
    Imprimir "Daten="+Str$(&Loop)+"   CRC16="+Str$(CRC16_Sp%),
    ' Und nun como Binärwert bajo Anschluß el Prüfsumme rückprüfen, muss entonces 0 ergeben:"
    CRC16_berechnen(val("%"+right$("0000000000000000"+bin$(&Loop),16)+right$("0000000000000000"+bin$(CRC16_Sp%),16)) )
    Imprimir tab(40);"Errorflag: ";Str$(CRC16_Sp%)

EndWhile

waitinput
 
XProfan 11
Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'...
19.05.2021  
 



Zum Quelltext


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

1.333 Views

Untitledvor 0 min.
Axel Berse17.06.2024
Member 361000504.08.2022
p.specht21.11.2021
R.Schneider20.11.2021
Más...

Themeninformationen

Dieses Thema ha 1 subscriber:

p.specht (1x)


Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie