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

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

Отправлено разочарованный 20 января 2006 г. 19:52

вычиляется FIR сигнал и коэфф в Q15

с помощью smlalbb
вертиться цикл 16х16 + 64 = 64
получаю результат в паре (Hi)r3:(Lo)r2
дальше хочу вытащить свой ожидаемый результат в Q15

вот что родилось


; --- complete result ---
adds r2, r2, r9 ; +round and produce overflow flag
adc r3, r3, #0 ; +overflow
mov r2, r2, lsr #15 ; r2 = r2>>15
orr r2, r2, r3, lsl #17 ; r2[31:0] = r3[14:0]:r2[31:15]

; --- saturate ---
mov r6, #0x8000 ; r6 = -1.0 Q15
sub r7, r6, #0x1 ; r7 ~ +1.0 Q15

movs r3, r2, asr#15 ; r3 = r2>>15
movgt r2, r7 ; if(r3>0) r2 ~ +1 saturate
addmis r3, r3, #1 ; if(r3<0) r3++
movmi r2, r6 ; if(r3<-1) r2 = -1 saturate

это меня так приплюснуло или есть ли что то другое? какой то еще способ?
заранее спасибо.

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

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 
NoIX ключ Запомнить

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

Ссылка на URL: 
Название ссылки: 

URL изображения: 


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

E-mail: info@telesys.ru