[an error occurred while processing this directive]
[an error occurred while processing this directive]
|
|
Если из Value=0..FFh нужно получить Result=0..100, то нужно Value*100/255. Проще делить на 256, ошибка получается 0.4%, если в конце результат округлять, то она незаметна.
.def Value =r16
.def Temp =r17
.def Result =r18
.def Counter =r19
; Value = 0..FFh
clr Result
ldi Temp,100
ldi Counter,8
lsr Temp
m1:brcc m2
add Result,Value
m2:ror Result
ror Temp
dec Counter
brne m1
rol Temp
adc Result,Counter
; Result = 0..100
E-mail: info@telesys.ru