Вот тебе тогда готовый код
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

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

Отправлено =AVR= 19 ноября 2006 г. 04:36
В ответ на: Ответ: Сейчас пробую это реализовать на mega16 чтобы определится хватит ли разрядности ацп,но уже начинаю понимать шо навряд ли фатит,главное разобраться а там возьму шота по круче отправлено <font color=gray>stas-mas</font> 19 ноября 2006 г. 03:03


; Масштабирование отсчета АЦП. r19r18 = ADC*r21r20/1024
scale:
sbi ADMUX,ADLAR ; Устанавливаем левое выравнивание - сэкономим далее 6 сдвигов

in r22,ADCL ; Читаем отсчет АЦП - он уже умножен на 64, как заказано выше
in r23,ADCH ;

ldi r20,#low(5005) ; Грузим коэффициент пересчета
ldi r21,#high(5005) ;

rcall mulu16x16 ; Умножаем отсчет на коэффициент и получаем масштабированный отсчет в r19r18
ret


; Подпрограмма беззнакового умножения, r19:r18:r17:r16 = r23:r22 * r21:r20. 17 тактов + rcall/ret
mulu16x16:
clr r2
mul r23,r21
movw r18,r0
mul r22,r20
movw r16,r0
mul r23,r20
add r17,r0
adc r18,r1
adc r19,r2
mul r21,r22
add r17,r0
adc r18,r1
adc r19,r2
ret


Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа
Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
URL изображения: 


Rambler's Top100 Рейтинг@Mail.ru
Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание