|
ldi r19,ramend
out spl,r19
rcall bin2bcd16nop
nop
bin2bcd16:
ldi bcd_8,'0'-1
ldi bcd_7,'0'-1
;movw bcd_2,bcd_4 ;for Mega's ;O)
mov bcd_6,bcd_8
mov bcd_5,bcd_7
mov bcd_4,bcd_8
mov bcd_3,bcd_7
mov bcd_2,bcd_8bcd16_8:
inc bcd_8
subi source_dat_L,low(10000000)
sbci source_dat_H,high(10000000)
sbci source_dat_HH,byte3(10000000)
brcc bcd16_8subi source_dat_L,low(-10000000)
sbci source_dat_H,high(-10000000)
sbci source_dat_HH,byte3(-10000000)bcd16_7:
inc bcd_7
subi source_dat_L,low(1000000)
sbci source_dat_H,high(1000000)
sbci source_dat_HH,byte3(1000000)
brcc bcd16_7subi source_dat_L,low(-1000000)
sbci source_dat_H,high(-1000000)
sbci source_dat_HH,byte3(-1000000)bcd16_6:
inc bcd_6
subi source_dat_L,low(100000)
sbci source_dat_H,high(100000)
sbci source_dat_HH,byte3(100000)
brcc bcd16_6subi source_dat_L,low(-100000)
sbci source_dat_H,high(-100000)
sbci source_dat_HH,byte3(-100000)bcd16_5:
inc bcd_5
subi source_dat_L,low(10000)
sbci source_dat_H,high(10000)
sbci source_dat_HH,byte3(10000)
brcc bcd16_5subi source_dat_L,low(-10000)
sbci source_dat_H,high(-10000)
sbci source_dat_HH,byte3(-10000)bcd16_4:
inc bcd_4
subi source_dat_L,low(1000)
sbci source_dat_H,high(1000)
brcc bcd16_4subi source_dat_L,low(-1000)
sbci source_dat_H,high(-1000)bcd16_3:
inc bcd_3
subi source_dat_L,low(100)
brcc bcd16_3subi source_dat_L,low(-100)
bcd16_2:
inc bcd_2
subi source_dat_L,low(10)
brcc bcd16_2subi source_dat_L,(-10-'0')
ret
E-mail: info@telesys.ru