Реализация протокола 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: