Отговори на тема  [ 16 мнения ]  Отиди на страница 1, 2  Следваща
CRC8 калкулатор 
Автор Съобщение
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Дек 19, 2004 6:26 pm
Мнения: 1628
Местоположение: Сливен
Мнение CRC8 калкулатор
Трябва ми някаква програмка за PC WIN98 да смята CRC 8 на някаква поредица /поредицата е до 20 байта/


Вто Дек 28, 2004 1:34 pm
Профил ICQ
Ранг: Ориентиран
Ранг: Ориентиран
Аватар

Регистриран на: Съб Сеп 25, 2004 4:33 pm
Мнения: 273
Местоположение: София
Мнение 
Ми ето ти повод да научиш Visual Basic.

_________________
Adios
Mozfet


Вто Дек 28, 2004 9:12 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Дек 19, 2004 6:26 pm
Мнения: 1628
Местоположение: Сливен
Мнение 
Mozfet написа:
Ми ето ти повод да научиш Visual Basic.

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


Вто Дек 28, 2004 9:20 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Дек 01, 2004 12:44 am
Мнения: 2811
Местоположение: София
Мнение 
Цитат:
Лошото е, че съм на 50 годинки и по-лесно ще науча ПОС (перфолентна операционна система)
На ръка го смятам, ама годинките......греша, а не бива :oops:

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


Вто Дек 28, 2004 11:24 pm
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Съб Сеп 25, 2004 12:32 pm
Мнения: 8382
Местоположение: София
Мнение 
Примерен код на ВБ, дано свърши работа.

Код:

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


Сря Дек 29, 2004 10:31 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Сеп 26, 2004 9:21 pm
Мнения: 30685
Местоположение: София
Мнение 
Въх ..... е те тва е програмист ...... какво таблично пресмятане избара ..... ммммм .. ъъъ... ааааа ... въпросът е да работи де :)

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

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


Сря Дек 29, 2004 10:34 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Съб Сеп 25, 2004 12:32 pm
Мнения: 8382
Местоположение: София
Мнение 
Не съм го писал аз, намерих го случайно. :) Но таблично винаги е по-добре.


Сря Дек 29, 2004 10:44 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Дек 19, 2004 6:26 pm
Мнения: 1628
Местоположение: Сливен
Мнение 
Благодаря за съдействието :)
Мисля, че ще ми свърши работа


Сря Дек 29, 2004 10:50 am
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Сеп 26, 2004 9:21 pm
Мнения: 30685
Местоположение: София
Мнение 
Реконструктор написа:
Не съм го писал аз, намерих го случайно. :) Но таблично винаги е по-добре.


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


Сря Дек 29, 2004 10:56 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пон Сеп 27, 2004 9:22 am
Мнения: 15501
Местоположение: София
Мнение 
Аз го правя тъй:

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:04 am
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Съб Сеп 25, 2004 12:32 pm
Мнения: 8382
Местоположение: София
Мнение 
ToHu написа:
мдаааа стига да имаш 200-300 байта излишни :)


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


Сря Дек 29, 2004 11:10 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Съб Сеп 25, 2004 12:32 pm
Мнения: 8382
Местоположение: София
Мнение 
Цецо написа:
И идея си немам как точно се съставя таблицата.
И защо е различна с тая на Реконструктора?


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


Сря Дек 29, 2004 11:12 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Сеп 26, 2004 9:21 pm
Мнения: 30685
Местоположение: София
Мнение 
Е .. естествено че е в програмната, аз точно за 200-300 свободни байта в програмната говорех ..... ако още малко поработиш с микроконтролери е дойде момент в който ще спреш да постъпваш като истински Софтуерист /разбирай такъв за РС софт/ ..... това си е доста обем .... имам системка с 12-ки в които толкова ми е почти цялата програма заедно с CRC-то ....


Чет Дек 30, 2004 12:10 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Окт 07, 2004 1:22 pm
Мнения: 1949
Местоположение: София
Мнение 
ToHu написа:
..... това си е доста обем .... имам системка с 12-ки в които толкова ми е почти цялата програма заедно с CRC-то ....


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


Чет Дек 30, 2004 12:21 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Сеп 26, 2004 4:11 pm
Мнения: 3750
Местоположение: София
Мнение 
Всичко зависи от това, за какъв обмен става дума. За RS232 на скорости до 19200 нямаш проблем и с PIC дори да го смяташ. А в нашите най-често правени устройства по-големи скорости просто няма.


Чет Дек 30, 2004 1:26 pm
Профил ICQ
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 16 мнения ]  Отиди на страница 1, 2  Следваща

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 9 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни