Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: CRC для MC3phac
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры
Антон Андреевич
Подскажите алгоритм рассчета CRC для MC3phac.

А еще лучше какие изменения надо внести в
программу подсчета CRC для Далласа под делфи
(видел на этом форуме),
чтоб она начала считать для Фрискейла.

Поскольку та что приведена в форуме выдает не те значения.
Для примера для посылки 2B E3 10 00 30 00 -crc DD.
2B в подсчете вроде не участвует.

Буду очень благодарен.
slog
Ищи поиском по форуму. Уже было про это. И в даташитах все написано. Там не CRC, там простая сумма.
Антон Андреевич
Цитата(slog @ Feb 18 2008, 19:17) *
Ищи поиском по форуму. Уже было про это. И в даташитах все написано. Там не CRC, там простая сумма.


искал поиском
по запросам mc3phac и crc
не нашел того что нужно

а нужен алгоритм расчета байта CRC
(или байта "простой суммы")
который необходимо добавить после сообщения
именно для mc3phac

если можно на пальцах ).

нашел

char sendpack(char N){ //передаёт пакет длинной N
unsigned char i,tmp;
unsigned char crc = 0xFF;
putchar (0x2B); //заголовок
for (i=0; i<N; i++){
tmp = TxBuf[i]; //в буфере пакет для передачи
crc = crc + tmp;
putchar(tmp);
}
crc = ~crc;
putchar(crc);
return N;
}


можно рассшифровать ?
в Си не силен

просто суммируем байты
все кроме первого
а потом инвертируем сумму ?

проверил в калькуляторе
фигня какая то получилась (
vshemm
Нужно к сумме прибавить 255 (т.к. суммирование начинается с 0xFF), затем взять остаток от деления на 256 (т.к. сумма хранится в байте, и соотвественно, она автоматически получается по модулю 256), а получившийся байт проинвертировать.
Антон Андреевич
Разобрался

но у меня получается двухбайтовый результат.
Старший байт отбрасываем, и остаеться сумма...

Спасибо большое.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.