реклама на сайте
подробности

 
 
> Dallas APPLICATION NOTE 27
dron2012
сообщение Jul 11 2013, 02:15
Сообщение #1





Группа: Новичок
Сообщений: 8
Регистрация: 11-07-13
Пользователь №: 77 475



Привет всем извините пожалуйста может не по теме пытаюсь разобраться с расчётам контрольной суммы Dallas APPLICATION NOTE 27 и не как не выходит.

данный которые выходят с датчика уровня топливо в конфигураторе отображается уровень (122) как я понял это вроде вот так

тем. уров. контрольная сумма
62,1, 7,19, 122,0, 132,30,234


62,1,7,19,122,0,132,30,234

62,1,7,19,122,0,246,30,66

62,1,7,19,122,0,49,31,64

62,1,7,19,122,0,80,31,81

62,1,7,19,122,0,151,31,3



Подскажите пожалуйста как рассчитывается контрольная сумма в таблице не как не магу разобраться
.


http://www.microshadow.com/files/files8051/app27.pdf


http://www.navi-tech.ru/file/protokol_DUTE-COM.pdf

http://красавтоконтроль.рф/data/documents/RE=20LLS=2020160=20v8.pdf
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
toweroff
сообщение Jul 13 2013, 13:49
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Да к лешему этот калькулятор, читайте апнот!
Там, правда, Паскаль, но какая разница... вот переписал на сях, все работает
Код
//---------------------------------------------------------------------------

#include <stdio.h>


// there our data
unsigned char our_data[8] = {62,1, 7,19, 122,0, 132,30};


unsigned char CRC_table[256] = {
0, 94, 188, 226, 97, 63, 221, 131, 194, 156, 126, 32, 163, 253, 31, 65,
157, 195, 33, 127, 252, 162, 64, 30, 95, 1, 227, 189, 62, 96, 130, 220,
35, 125, 159, 193, 66, 28, 254, 160, 225, 191, 93, 3, 128, 222, 60, 98,
190, 224, 2, 92, 223, 129, 99, 61, 124, 34, 192, 158, 29, 67, 161, 255,
70, 24, 250, 164, 39, 121, 155, 197, 132, 218, 56, 102, 229, 187, 89, 7,
219, 133, 103, 57, 186, 228, 6, 88, 25, 71, 165, 251, 120, 38, 196, 154,
101, 59, 217, 135, 4, 90, 184, 230, 167, 249, 27, 69, 198, 152, 122, 36,
248, 166, 68, 26, 153, 199, 37, 123, 58, 100, 134, 216, 91, 5, 231, 185,
140, 210, 48, 110, 237, 179, 81, 15, 78, 16, 242, 172, 47, 113, 147, 205,
17, 79, 173, 243, 112, 46, 204, 146, 211, 141, 111, 49, 178, 236, 14, 80,
175, 241, 19, 77, 206, 144, 114, 44, 109, 51, 209, 143, 12, 82, 176, 238,
50, 108, 142, 208, 83, 13, 239, 177, 240, 174, 76, 18, 145, 207, 45, 115,
202, 148, 118, 40, 171, 245, 23, 73, 8, 86, 180, 234, 105, 55, 213, 139,
87, 9, 235, 181, 54, 104, 138, 212, 149, 203, 41, 119, 244, 170, 72, 22,
233, 183, 85, 11, 136, 214, 52, 106, 43, 117, 151, 201, 74, 20, 246, 168,
116, 42, 200, 150, 21, 75, 169, 247, 182, 232, 10, 84, 215, 137, 107, 53};

void CRC (unsigned char *crc, unsigned char data)
{
    *crc = CRC_table[*crc ^ data];
    return;
}
//---------------------------------------------------------------------------

int main(int argc, char* argv[])
{
unsigned char our_crc, i;

    our_crc = 0;

    for(i=0; i<8; i++)
        CRC(&our_crc, our_data[i]);

    // MUST be 234 (0xEA)
    printf("Calculated CRC: %d (%Xh)\n");

    return 0;
}
//---------------------------------------------------------------------------
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 31st July 2025 - 22:06
Рейтинг@Mail.ru


Страница сгенерированна за 0.01296 секунд с 7
ELECTRONIX ©2004-2016