Ответ: Кодировку только не понимает ...на Си и на Асм
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

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

Отправлено Ежик 20 февраля 2003 г. 11:13
В ответ на: Как подсчитать CRC для MODBUSa не с помощю табличного алгоротма отправлено VitalyM 18 февраля 2003 г. 12:40

/*Description : Расчет CRC ModBus
Argument :
Return Value :
Note :*/
void CRC_Modbus(ByteUART* ByteUARTn){
int idata count_bit;
ByteUARTn->CRCWord^=ByteUARTn->UARTSbuf;
for(count_bit=0;count_bit<8;count_bit++){
if(ByteUARTn->CRCWord & 0x0001)
ByteUARTn->CRCWord=ByteUARTn->CRCWord>>1^0xA001;
else ByteUARTn->CRCWord=ByteUARTn->CRCWord>>1;
};
/* crcl при передаче идет первым */
/* crch при передаче идет вторым */
}//void CRC_Modbus

RCV_Summ:
movf ACC_REC,W ;rec data
call val_crc
goto transmit
val_crc: ;max 102 cikla
xorwf CRCL,F
movlw 8
movwf COUNT_BIT
cikl_sdv:
bcf _C
rrf CRCH,F
rrf CRCL,F
jnc nol_sdv
movlw 0a0h
xorwf CRCH,F
movlw 001h
xorwf CRCL,F
nol_sdv:
djnz COUNT_BIT,cikl_sdv
return

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

Ответы



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

E-mail: info@telesys.ru