[an error occurred while processing this directive] [an error occurred while processing this directive]
Ответ:
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
[an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive]

Отправлено TG 02 октября 2001 г. 16:42
В ответ на: Все эти XORы и сдвиги - не что иное, как деление. Но только не обычное, отправлено konst 02 октября 2001 г. 14:30

ВСЕМ СПАСИБО !!!
Я немного разобрался :)
Только вот теория не сходится с практикой :(
Насколько я понял, если, например, исходное число 1 байт, например, ABh. Многочлен 011021h. То при делении (AB0000h)/(011021h)остаток равен EB60h.
Тем не менее, найденная мной нижеследующий код для PIC16 дает результат 0481h. Код, вроде, верный. В чем проблема ?

clrf CRC_hi
clrf CRC_low
movlw 0ABh
movwf Data
movlw 8
movwf Counter
L_0:
movf Data, W
xorwf CRC_hi, W
andlw B'10000000'
bcf CARRY
rlf CRC_low, F
rlf CRC_hi, F
btfsc ZERO
goto L_1
movlw b'00010000'
xorwf CRC_hi, F
movlw b'00100001'
xorwf CRC_low, F
L_1:
rlf Data, F
decsz Counter, F
goto L_0


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

Ответы



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

E-mail: info@telesys.ru