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

миниатюрный аудио-видеорекордер mAVR

Отправлено Леонид Иванович 25 августа 2002 г. 18:12
В ответ на: Вопрос поставлен так, что понять ничего невозможно. отправлено Леонид Иванович 25 августа 2002 г. 17:09

Если из 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