[an error occurred while processing this directive]
Вас не поймешь, то 13125 циклов это весело, а будет меньше - еще веселее. Теперь оказывается, что и этого мало...
(«Телесистемы»: Конференция «Цифровые сигнальные процессоры (DSP) и их применение»)

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

Отправлено GM 15 сентября 2005 г. 13:20
В ответ на: Ответ: отправлено Seishel 15 сентября 2005 г. 09:38

Далее. Никто про Вашу тупость напрямую не говорил, не надо ля-ля. Вам было сказано, что алгоритм недостаточно продуман. Более того, теперь мы знаем, что авторами алгоритма являются совсем другие люди, значит Вы вообще ни при чем(:-).

Теперь по делу, т.е. по Вашему коду. Вы получаете произведение RC*ATMB(IB) и своими собственными руками умножаете его на 2, подготавливая почву, так сказать, к переполнению. Но у Вас же 40-битный аккумулятор, кто мешает вначале сложить в нем НЕсдвинутое вправо произведение RC*ATMB(IB) со сдвинутым на 15 битов вправо (а не на 16! как у Вас) ATMB(IP), получить 40-битный результат, округлить до требуемого разряда и сохранить необходимые 16-бит? В итоге переполнений будет меньше, а то и не будет вообще. Сказанное выше является результатом непродуманности алгоритма.

А если вы хотите применить 2 мака, переполнение надо проверять после каждого, увы, хотите вы этого или нет!

Далее, при обработке переполнения, Вы масштабируете заново и заново считаете значение, но почему-то не обращаете внимание, что может возникнуть переполнение опять. Опять здесь видна сыроватость алгоритма.

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

Ответы


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

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

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

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

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


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru