[an error occurred while processing this directive]
VisualDSP++ 3.0 for SHARC = проблема.
(«Телесистемы»: Конференция «Цифровые сигнальные процессоры (DSP) и их применение»)

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

Отправлено isr2 16 октября 2003 г. 17:33

Подскажите, почему этот код:

#define pi 3.14159265358979323846
void main(void)
{
float tmt;
tmt = 2047.0*sinf (pi/2)+2047.0;
}

возвращает в симуляторе (и не только) tmt=2.18078e+012,
когда должен 4094.0.
Я помоему понял из-за чего это происходит просматривая
код в дизассемблере: после вычисления синуса в r0 возвра-
щается 1.0 - т.е. то что нужно, а затем идет преобразование
этой 1.0 во флоат, хотя она уже во флоате (т.е. f4=float f0).
В результате f4=1.065e9, а дальше это умножается на 2047
и прибавляется 2047 и получаем тот самый неправильный tmt.
Так вот как с этим бороться?

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

Ответы


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

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

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

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

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


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

E-mail: info@telesys.ru