Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

CRC8 калкулатор
http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=254
Страница 1 от 2

Автор:  Wise [ Вто Дек 28, 2004 1:34 pm ]
Заглавие:  CRC8 калкулатор

Трябва ми някаква програмка за PC WIN98 да смята CRC 8 на някаква поредица /поредицата е до 20 байта/

Автор:  Mozfet [ Вто Дек 28, 2004 9:12 pm ]
Заглавие: 

Ми ето ти повод да научиш Visual Basic.

Автор:  Wise [ Вто Дек 28, 2004 9:20 pm ]
Заглавие: 

Mozfet написа:
Ми ето ти повод да научиш Visual Basic.

Лошото е, че съм на 50 годинки и по-лесно ще науча ПОС (перфолентна операционна система)
Не се стискайте, а дайте .exe или линкче
На ръка го смятам, ама годинките......греша, а не бива :oops:

Автор:  Lupus [ Вто Дек 28, 2004 11:24 pm ]
Заглавие: 

Цитат:
Лошото е, че съм на 50 годинки и по-лесно ще науча ПОС (перфолентна операционна система)
На ръка го смятам, ама годинките......греша, а не бива :oops:

Я не се оплаквай! Какво да кажем ние с гайдите!

Автор:  Реконструктор [ Сря Дек 29, 2004 10:31 am ]
Заглавие: 

Примерен код на ВБ, дано свърши работа.

Код:

Public Sub CRC8(ByRef Data() As Variant)

    Dim CRC As Byte
    Dim Length As Byte
    Dim Index As Byte
    Dim CRCtable1 As Variant
    CRC = 0
    Length = 1
    CRCtable1 = Array(&H0, &H7, &HE, &H9, &H1C, &H1B, &H12, &H15, &H38, &H3F, &H36, &H31, &H24, &H23, &H2A, _
                      &H2D, &H70, &H77, &H7E, &H79, &H6C, &H6B, &H62, &H65, &H48, &H4F, &H46, &H41, &H54, _
                      &H53, &H5A, &H5D, &HE0, &HE7, &HEE, &HE9, &HFC, &HFB, &HF2, &HF5, &HD8, &HDF, &HD6, _
                      &HD1, &HC4, &HC3, &HCA, &HCD, &H90, &H97, &H9E, &H99, &H8C, &H8B, &H82, &H85, &HA8, _
                      &HAF, &HA6, &HA1, &HB4, &HB3, &HBA, &HBD, &HC7, &HC0, &HC9, &HCE, &HDB, &HDC, &HD5, _
                      &HD2, &HFF, &HF8, &HF1, &HF6, &HE3, &HE4, &HED, &HEA, &HB7, &HB0, &HB9, &HBE, &HAB, _
                      &HAC, &HA5, &HA2, &H8F, &H88, &H81, &H86, &H93, &H94, &H9D, &H9A, &H27, &H20, &H29, _
                      &H2E, &H3B, &H3C, &H35, &H32, &H1F, &H18, &H11, &H16, &H3, &H4, &HD, &HA, &H57, &H50, _
                      &H59, &H5E, &H4B, &H4C, &H45, &H42, &H6F, &H68, &H61, &H66, &H73, &H74, &H7D, &H7A, _
                      &H89, &H8E, &H87, &H80, &H95, &H92, &H9B, &H9C, &HB1, &HB6, &HBF, &HB8, &HAD, &HAA, _
                      &HA3, &HA4, &HF9, &HFE, &HF7, &HF0, &HE5, &HE2, &HEB, &HEC, &HC1, &HC6, &HCF, &HC8, _
                      &HDD, &HDA, &HD3, &HD4, &H69, &H6E, &H67, &H60, &H75, &H72, &H7B, &H7C, &H51, &H56, _
                      &H5F, &H58, &H4D, &H4A, &H43, &H44, &H19, &H1E, &H17, &H10, &H5, &H2, &HB, &HC, &H21, _
                      &H26, &H2F, &H28, &H3D, &H3A, &H33, &H34, &H4E, &H49, &H40, &H47, &H52, &H55, &H5C, _
                      &H5B, &H76, &H71, &H78, &H7F, &H6A, &H6D, &H64, &H63, &H3E, &H39, &H30, &H37, &H22, _
                      &H25, &H2C, &H2B, &H6, &H1, &H8, &HF, &H1A, &H1D, &H14, &H13, &HAE, &HA9, &HA0, &HA7, _
                      &HB2, &HB5, &HBC, &HBB, &H96, &H91, &H98, &H9F, &H8A, &H8D, &H84, &H83, &HDE, &HD9, _
                      &HD0, &HD7, &HC2, &HC5, &HCC, &HCB, &HE6, &HE1, &HE8, &HEF, &HFA, &HFD, &HF4, &HF3)
   
     Do While Length < 7
        Index = CRC Xor Data(Length)
        CRC = CRCtable1(Index)
        Length = Length + 1
     Loop
     CRC8 = CRC
     
End Sub

Автор:  ToHu [ Сря Дек 29, 2004 10:34 am ]
Заглавие: 

Въх ..... е те тва е програмист ...... какво таблично пресмятане избара ..... ммммм .. ъъъ... ааааа ... въпросът е да работи де :)

http://www.ustr.net/files/crc8.exe

е те това .... пише че е за даласки .... то там нали знаеш .. полинома е от значение .. това не знам с какъв полином е ...:(

Автор:  Реконструктор [ Сря Дек 29, 2004 10:44 am ]
Заглавие: 

Не съм го писал аз, намерих го случайно. :) Но таблично винаги е по-добре.

Автор:  Wise [ Сря Дек 29, 2004 10:50 am ]
Заглавие: 

Благодаря за съдействието :)
Мисля, че ще ми свърши работа

Автор:  ToHu [ Сря Дек 29, 2004 10:56 am ]
Заглавие: 

Реконструктор написа:
Не съм го писал аз, намерих го случайно. :) Но таблично винаги е по-добре.


мдаааа стига да имаш 200-300 байта излишни :)

Автор:  Цецо [ Сря Дек 29, 2004 11:04 am ]
Заглавие: 

Аз го правя тъй:

unsigned char CalcCRC(unsigned char *cBuffer,unsigned int nLenght) {

const unsigned char cCrcTable[256] = {
0x00,0x9B,0xAD,0x36,0xC1,0x5A,0x6C,0xF7,0x19,0x82,0xB4,0x2F,0xD8,0x43,0x75,0xEE,
0x32,0xA9,0x9F,0x04,0xF3,0x68,0x5E,0xC5,0x2B,0xB0,0x86,0x1D,0xEA,0x71,0x47,0xDC,
0x64,0xFF,0xC9,0x52,0xA5,0x3E,0x08,0x93,0x7D,0xE6,0xD0,0x4B,0xBC,0x27,0x11,0x8A,
0x56,0xCD,0xFB,0x60,0x97,0x0C,0x3A,0xA1,0x4F,0xD4,0xE2,0x79,0x8E,0x15,0x23,0xB8,
0xC8,0x53,0x65,0xFE,0x09,0x92,0xA4,0x3F,0xD1,0x4A,0x7C,0xE7,0x10,0x8B,0xBD,0x26,
0xFA,0x61,0x57,0xCC,0x3B,0xA0,0x96,0x0D,0xE3,0x78,0x4E,0xD5,0x22,0xB9,0x8F,0x14,
0xAC,0x37,0x01,0x9A,0x6D,0xF6,0xC0,0x5B,0xB5,0x2E,0x18,0x83,0x74,0xEF,0xD9,0x42,
0x9E,0x05,0x33,0xA8,0x5F,0xC4,0xF2,0x69,0x87,0x1C,0x2A,0xB1,0x46,0xDD,0xEB,0x70,
0x0B,0x90,0xA6,0x3D,0xCA,0x51,0x67,0xFC,0x12,0x89,0xBF,0x24,0xD3,0x48,0x7E,0xE5,
0x39,0xA2,0x94,0x0F,0xF8,0x63,0x55,0xCE,0x20,0xBB,0x8D,0x16,0xE1,0x7A,0x4C,0xD7,
0x6F,0xF4,0xC2,0x59,0xAE,0x35,0x03,0x98,0x76,0xED,0xDB,0x40,0xB7,0x2C,0x1A,0x81,
0x5D,0xC6,0xF0,0x6B,0x9C,0x07,0x31,0xAA,0x44,0xDF,0xE9,0x72,0x85,0x1E,0x28,0xB3,
0xC3,0x58,0x6E,0xF5,0x02,0x99,0xAF,0x34,0xDA,0x41,0x77,0xEC,0x1B,0x80,0xB6,0x2D,
0xF1,0x6A,0x5C,0xC7,0x30,0xAB,0x9D,0x06,0xE8,0x73,0x45,0xDE,0x29,0xB2,0x84,0x1F,
0xA7,0x3C,0x0A,0x91,0x66,0xFD,0xCB,0x50,0xBE,0x25,0x13,0x88,0x7F,0xE4,0xD2,0x49,
0x95,0x0E,0x38,0xA3,0x54,0xCF,0xF9,0x62,0x8C,0x17,0x21,0xBA,0x4D,0xD6,0xE0,0x7B};

unsigned char cRealCRC;
unsigned int i;
cRealCRC = 0;
for (i = 0; i < nLenght; i++) cRealCRC = cCrcTable[cRealCRC] ^ cBuffer[i];
return cRealCRC;
}

Ама съм го взел от протокол който ми беше спуснат. И идея си немам как точно се съставя таблицата. И защо е различна с тая на Реконструктора?

Автор:  Реконструктор [ Сря Дек 29, 2004 11:10 am ]
Заглавие: 

ToHu написа:
мдаааа стига да имаш 200-300 байта излишни :)


Ако си хитър, можеш да си го наблъскаш в програмната памет. :) Само че ще ти трябва 3-4 пъти повече място.

Автор:  Реконструктор [ Сря Дек 29, 2004 11:12 am ]
Заглавие: 

Цецо написа:
И идея си немам как точно се съставя таблицата.
И защо е различна с тая на Реконструктора?


Еба ли го? :) Случайни стойности? :rolleyes:

Автор:  ToHu [ Чет Дек 30, 2004 12:10 am ]
Заглавие: 

Е .. естествено че е в програмната, аз точно за 200-300 свободни байта в програмната говорех ..... ако още малко поработиш с микроконтролери е дойде момент в който ще спреш да постъпваш като истински Софтуерист /разбирай такъв за РС софт/ ..... това си е доста обем .... имам системка с 12-ки в които толкова ми е почти цялата програма заедно с CRC-то ....

Автор:  Predator_MF [ Чет Дек 30, 2004 12:21 pm ]
Заглавие: 

ToHu написа:
..... това си е доста обем .... имам системка с 12-ки в които толкова ми е почти цялата програма заедно с CRC-то ....


Е..да де...ама не го смята толкова бързо като табличния...нали [-X

Автор:  bateAz [ Чет Дек 30, 2004 1:26 pm ]
Заглавие: 

Всичко зависи от това, за какъв обмен става дума. За RS232 на скорости до 19200 нямаш проблем и с PIC дори да го смяташ. А в нашите най-често правени устройства по-големи скорости просто няма.

Страница 1 от 2 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/