реклама на сайте
подробности

 
 
> WinAVR & float, проблемы оптимизации
GIGAWAT
сообщение Apr 3 2007, 23:36
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 48
Регистрация: 9-02-07
Из: Санкт-Петербург
Пользователь №: 25 221



Приветствую 8)

Имеется девайс на Mega169.
Имеется некоторый код написанный под WinAVR.
Проблема в следующем.
Провожу вычисления с извлечением корня кубического, для этого я возводил число в степень 1/3 с помошью функции pow библиотеки math, все заработало, вычисляется, НО компилятор нормально работает с переменными float и double только без оптимизации кода, а без оптимизации в память не влезает основной код (rom всего 16К).
Незнаю даже, что делать?
Может есть вариант оптимизации отдельно взятого участка кода ?
Или может вообще отказаться от вещественных типов ? (однако неохота ,ибо уже парился с этим заставляя на асме вычислять корень кубический МК(HOLTEK HT49R50), который умел аппаратно токо складывать и умножать wacko.gif ) не зря же я на архитектуру AVR переехал smile3046.gif
Вобщем нужно мнение ОТЦОВ 8) a14.gif
Заранее спасибо.

З.Ы.
Если нужны уточнения, спрашивайте wink.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
GIGAWAT
сообщение Apr 4 2007, 00:34
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 48
Регистрация: 9-02-07
Из: Санкт-Петербург
Пользователь №: 25 221



1) Версия WinAVR-20060421.

2)Кусочек кода:

#include <math.h>
float x1;
float rezult;
main()
{
x1=pow(25,0.333);
rezult=x1*2;
}
Неработает собственно при любой попытке обращения к float.

3)Насчет разбивки по файлам и раздельной оптимизации, это хорошая мысль.

4)Я бы отказался, но я так и не нашел варианта как можно сделать числа с запятой (хотя бы с фиксированнной).
Когда я делал тоже самое на асме, я просто домножал целое число на 100 и принимал последние два числа, как бы за "числа после запятой". Так вот и вычислял домножением и делением на сто. Убого конечно, грамоздко (650 строк кода на асме cranky.gif ), но работало, формула четко просчитывалась.
Но неохота мне тоже самое мутить на С. Это же несерьезно blush.gif
Эсли вы знаете как заменить float, будте добры, подскажите rolleyes.gif

Плюс конечно неприятно, что при наличии пачки математических функций их можно просто выбросить на свалку истории, только из-за глюков оптимизации wacko.gif

Сообщение отредактировал GIGAWAT - Apr 4 2007, 00:35
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 31st July 2025 - 16:52
Рейтинг@Mail.ru


Страница сгенерированна за 0.0138 секунд с 7
ELECTRONIX ©2004-2016