Реализация протокола Modbus
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
LDI COUNTER,8
crcloop:
bst CRCL,0
brtc noxor
LSR CRCL
bst CRCH,0
bld CRCL,7
lsr CRCH
ldi tmp,1
eor CRCL,tmp
ldi tmp,$A0
eor CRCH,tmp
dec COUNTER
brne crcloop
noxor:
LSR CRCL
bst CRCH,0
bld CRCL,7
lsr CRCH
dec COUNTER
brne crcloop
_to_mask:
;R16 - регистр, который нужно преобразовать
;результат в R18
cpi R16,0
ldi R18,1
breq end_mask
cycle_mask:
lsl R18
dec R16
cpi R16,0
brne cycle_mask
end_mask:
ret
_mask:
;нужно получить маску AND для первых DATACL бит
;результат в R25, ошибки уже не возникнет
push DATACL
ldi R25,0
cpi DATACL,0
breq mask_end
mask_loop:
lsl R25
inc R25
dec DATACL
cpi DATACL,0
brne mask_loop
mask_end:
pop DATACL
_status_reg:
brbc 7,no_inter
inc MES
no_inter:
lsl MES
brbc 6,no_temp
inc MES
no_temp:
lsl MES
brbc 5,no_half
inc MES
no_half:
lsl MES
brbc 4,no_sign
inc MES
no_sign:
lsl MES
brbc 3,no_over
inc MES
no_over:
lsl MES
brbc 2,no_neg
inc MES
no_neg:
lsl MES
brbc 1,no_zero
inc MES
no_Zero:
lsl MES
brbc 0,no_carry
inc MES
no_carry: