Вход
Наше всё
Теги
codebook
无线电组件
Поиск
Опросы
Закон
Пятница
22 ноября
О смысле всего сущего
0xFF
Средства и методы разработки
Мобильная и беспроводная связь
Блошиный рынок
Объявления
Микроконтроллеры
PLD, FPGA, DSP
AVR
PIC
ARM, RISC-V
Технологии
Кибернетика, автоматика, протоколы
Схемы, платы, компоненты
Микроконтроллеры AVR
435904
Топик полностью
Apтём
(24.08.2013 21:49, просмотров: 175)
ответил
Adept
на
Мудрёно как-то, ну да ладно - хотел замутить аппаратный подсчёт CRC для UART пакетов, но может проще сделать софтово - тупо вызовом п/п обсчёта блока ОЗУ, а адреса передать через XY.
Да ничего мудрёного, особенно для IO-режима:
1) Сброс-инициализация CRC 2) Цикл подсчёта - читается очередной байт, записывается в CRC.DATAIN и всё это циклически (пока байты не кончатся). 3) Чтение CRC16 или CRC32 из CRC.CHECKSUM.
Ответить
Ну по одному байту как примерно понятно. У меня там не совсем стрим, нужно приёмные/передающие буферы обсчитывать. Можно конечно встроить в процедуры приёма передачи и считать побайтно, но была мысть залабать библиотечную процедурку подсчёта CRC
Adept
(176 знак., 24.08.2013 21:56
)
Считать по-байтно CRC может только данные проходящие через один канал DMA, но их то до четерёх. А жаль - повесить бы на каждый канал по такому блоку и ещё один для подсчёта через CPU - неплохо было бы, а так как-то оно урезано выглядит.
-
Apтём
(24.08.2013 22:53
)