Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс. e-mail:jobsmp@pochta.ru |
Нужно вычеслить квадратный корень из числа Z лежащий в диапазоне
unsigned long z;
вызываю функцию и передаю в качестве аргумента значение Z:
lsqrt(z);
Пологаю что функция возвращает значение квадратного корня Z в переменную x.
Пробую эмулировать программу в AVR Studio.
//******************************************************************
z=256;
lsqrt(z);
a=x;
//******************************************************************
Предварительно объявив глобальные переменные как:
unsigned long z, a;
extern unsigned int x ;
Прогоняя через эмулятор значение переменной по завершению программы равно нулю, хотя просмотрев ассемблерный код библиотеки извления квадратного корня, видно что результат должен находится в регистрах r30,r31. Он там и лежит: 0x10
Вопрос, как забрать значение функции
unsigned int lsqrt(unsigned long x);
для дальнейшего употребления.