Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

problem korzystania z tablic c -

23 Lip 2013 19:08 1656 4
  • Poziom 9  
    Witam. Jestem w stanie obliczyć sobie crc8 i tablicę - przykład: wielomian=100000111 dana=$01 crc=$07 , dana=$02 crc=$0e itd... w ten sposób mam obliczoną całą tablicę.
    Jak skorzystać z tej tablicy dla ciągu danych, np. dana=$0102 ? Na piechotę, jak wyliczę wychodzi crc=$1b, ale jak uzyskać ten wynik stosując tablicę?
    Prosił bym o konkretne przykłady - jeśli można od A do Z. :)
    Z góry dziękuję i pozdrawiam.
  • Poziom 32  
    Zaczynasz z CRC=0x00 . Następnie dla każdego bajtu w ciągu wejściowym, CRC=tablica[CRC^bajt];

    W twoim ciągu wejściowym masz dwa bajty, kolejno 0x01 0x02, więc wygląda to tak:
    CRC=0x00;
    indeks tablicy=0x00^0x01=0x01;
    CRC=tablica[0x01]=0x07;
    indeks tablicy=0x07^0x02=0x05;
    CRC=tablica[0x05]=0x1B;

    Tu masz gotową implementację:
    http://www.rajivchakravorty.com/source-code/u...ainty/multimedia-sim/html/crc8_8c-source.html
  • Poziom 9  
    Kolego... Jesteś jedwabisty:) piwko dla Ciebie:) Wielkie dzięki i pozdrawiam:)

    Dodano po 1 [godziny] 52 [minuty]:

    Sory kolego ze zawracam...:) ale czy dał byś rade jeszcze mi wytłumaczyć obliczanie crc16 ???:) np:
    wielomian: 10001000000100001 ($11021)
    dana $00=crc$0000
    dana $01=crc$1021
    dana $02=crc$2042
    dana $03=crc$3063
    i załóżmy że chcę ciąg danych $0103=crc$0352 jak to obliczyć z tablic?
    ps. temat miał brzmieć "problem korzystania z tablic crc" program sobie piszę w asemblerze a o języku C niezbyt mam pojecie..:) pozdrawiam.
  • Poziom 32  
    Podobne reguły. A C radzę się nauczyć, mniej stresu niż przy ASM. :)

    Kod: c
    Zaloguj się, aby zobaczyć kod

    Według kolekcji snippets.org ( [1] [2] [3] )
    Na ASM przekłada się to mniej więcej tak:
    crc = 0
    Dla każdego bajtu...
    adres = crc
    adres SHR 8
    adres XOR bajt
    crc SHL 8
    crc XOR tablica[adres]
  • Poziom 9  
    Działa. Wielkie dzięki :D Pozdrawiam