Re: Vypoet CRC

Va Sm SpiritusII@seznam.cz
Úterý Červenec 22 15:18:14 CEST 2008


Jiste:


#include <stdio.h>
#include <stdlib.h>

unsigned int pracstr[]=  {0x02,0xa0,0x04,0x21,0x03,0xf3,0x01,0x00,0x02,0x00,0x0c,0x00,0x1f,0xff,0x41,0x00,0x00,0x02,0x00,0x64,0x10};

//unsigned int pracstr[]={0x01,0x00,0x02,0x00,0x0c,0x00,0x60,0xea,0x41,0x00,0x00,0x00,0x00,0x03}; 
              

unsigned int  crcreg, prenos,i,j,test,plneni;

int main(int argc, char *argv[])
{
  crcreg=0xFFFF;
  
  for (i=0; i<19; i++){
      crcreg=crcreg ^ pracstr[i];
      for (j=0; j<8; j++){
          prenos=crcreg & 1;
          crcreg=crcreg >> 1;
          if (prenos==1)
            crcreg=crcreg^0x8408; //pro HDLC 8408h a musi vyjit zbytek F0B8h
      }    
  } 

  printf ("%x\n",crcreg);
  system("PAUSE");	
  return 0;
}



> ------------ Původní zpráva ------------
> Od: Jan Waclawek <konfera@efton.sk>
> Předmět: Re: Vypoet CRC
> Datum: 22.7.2008 15:12:33
> ----------------------------------------
> Tych algoritmov je hafo - lisia sa detailami, ale bohuzial na tych to stoji a
> pada.
> 
> Mozno by pomohlo keby ste zverejnili aj nejaku jednoduchu implementaciu pomocou
> ktorej ste dospeli k tym vysledkom...
> 
> wek
> 
> 
> ----- Original Message ---------------
> 
> Subject: Re: Vypoet CRC
>    From: Va Sm <SpiritusII@seznam.cz>
>    Date: Tue, 22 Jul 2008 14:56:46 +0200 (CEST)
>      To: HW-news <hw-list@list.hw.cz>
> 
> >Trochu konkretneji
> >mam nasledujici zpravu:
> >0x02,0xa0,0x04,0x21,0x03,0xf3,0x01,0x00,0x02,0x00,0x0c,0x00,0x1f,0xff,0x41,0x00,0x00,0x02,0x00,0x64,0x10
> >Posledni 2 bajty jsou pridany CRC k puvodni zprave (urcite jsou ok).
> >Otazka zni, jak se dopocitat k tem poslednim 2B???
> >
> >K zabezpeceni pouzit polynom 0x8408
> >inicializece crc 0xFFFF
> >porovnavaci konstanta 0xF0B8
> >
> >Pokud vsechny bajty projdou crc algoritmem skutecne vyjde 0xF0B8 - data jsou
> tedy ok.
> >Pokud crc algoritmem projdou jen informacni bajty je vysledek oxEF9B, ale to je
>  zvlastni, cekal bbych vysledek 0x6410. Jak se tedy od 0xEF9B dostat k 0x6410?
> >
> >Omlouvam se za konkretni cisla, ale mozna je takto muj dotaz trochu
> srozumitelnejsi
> 
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list@list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
> 
> 
> 



Další informace o konferenci Hw-list