Пример:
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Леонид Иванович 05 июля 2004 г. 12:58
В ответ на: Реализовывал ли кто-то CRC8 на AT90S2313 или другой классической AVR? Какой алгоритм использовали - табличный или какой-либо другой? отправлено bp 05 июля 2004 г. 12:14


;Update CRC:
;Input: temp - data byte
;Z - pointer to Rx_Str or Tx_Str
;Out: [Z+x_Crc] - new CRC value

Do_CRC: push YL
push YH
ldi Cnt,8 ;Set to shift eight bits
ldd YH,Z+x_Crc

CRCL: mov YL,temp
eor YL,YH ;Calculate DQIN xor CRCT0
ror YL ;Move it to the carry
brcc ZERO ;Skip if DQIN xor CRCT0 = 0
ldi YL,0x18
eor YH,YL ;Update the CRC value
ZERO: ror YH ;Position the new CRC
lsr temp ;Position next bit in LSB
dec Cnt
brne CRCL ;Repeat for eight bits
std Z+x_Crc,YH
pop YH
pop YL
ret ;Return



Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru