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

 
 
 
Reply to this topicStart new topic
> кто работал с математикой на WINAVR, как включить double - 64 бита
Seregio
сообщение Jul 27 2009, 07:12
Сообщение #1





Группа: Участник
Сообщений: 14
Регистрация: 3-06-09
Пользователь №: 49 874



В WINAVR по умолчанию float = double = 32 битам, кто знает как повысить точность расчетов для тригонометрических функций ?
Работаю с ATMEGA128.

Сообщение отредактировал Seregio - Jul 27 2009, 07:15
Go to the top of the page
 
+Quote Post
Genadi Zawidowsk...
сообщение Jul 27 2009, 07:32
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



Страница 87 описания:

Цитата
• Data types:
char is 8 bits, int is 16 bits, long is 32 bits, long long is 64 bits, float and
double are 32 bits (this is the only supported floating point format), pointers
are 16 bits (function pointers are word addresses, to allow addressing up to 128K
program memory space). There is a -mint8 option (see Options for the C
compiler avr-gcc) to make int 8 bits, but that is not supported by avr-libc and
violates C standards (int must be at least 16 bits). It may be removed in a future
release.


Тоесть - никак. Разве что, собственную библиотеку написать на основе long long в каестве мантиссы. На arm переходите.

Сообщение отредактировал Genadi Zawidowski - Jul 27 2009, 07:39
Go to the top of the page
 
+Quote Post
Seregio
сообщение Jul 27 2009, 07:43
Сообщение #3





Группа: Участник
Сообщений: 14
Регистрация: 3-06-09
Пользователь №: 49 874



спасибо за ответ, буду писать библиотеку.
Go to the top of the page
 
+Quote Post
Genadi Zawidowsk...
сообщение Jul 27 2009, 07:47
Сообщение #4


Профессионал
*****

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



Сколько времени на это? Не быстрее ли окажется на другой процессор перейти - программа с winar на другой gcc - yagarto - переносится за день (если ассемблера нет в программме).
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Jul 27 2009, 08:32
Сообщение #5


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



Цитата(Genadi Zawidowski @ Jul 27 2009, 16:47) *
Сколько времени на это? Не быстрее ли окажется на другой процессор перейти - программа с winar на другой gcc - yagarto - переносится за день (если ассемблера нет в программме).

Гм, так уж и за день, в независимости от объема и сложности ПО, а также знаний другого микроконтроллера? Кстати, если топикстартер уже имеет сображнное и отлаженное железо, то проще с библиотекой помучаться.

Цитата(Seregio @ Jul 27 2009, 16:12) *
В WINAVR по умолчанию float = double = 32 битам, кто знает как повысить точность расчетов для тригонометрических функций ?

Какая точность Вам необходима? Может быть табличное решение (для ускорение вычислений) применить + свой тип дробных чисел и методы работы с ними?


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
Genadi Zawidowsk...
сообщение Jul 27 2009, 09:01
Сообщение #6


Профессионал
*****

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



Цитата
Гм, так уж и за день, в независимости от объема и сложности ПО, а также знаний другого микроконтроллера?


Я перенес сложную ножкодрыгаельную программу (16*2 индикатор, кнопки, spi устройства, прерывания от пинов и таймер) за день. после сборки на макетке wiggler-а и припаиваня к макетке же at91sam7s32. С arm я до того не работал вообще (правда, работал с полдесятком других процессоров).

Так вопрошавшему мы поможем перейти на arm?

Всё определяется сроками и затратами, которые топикстартер моет себе позволить. Если он пару месяцев будет отлаживать новую библиотеку - и выяснит, что по скорости работы не уложился... возможности перейти на другой процессор ему уже не дадут.
Go to the top of the page
 
+Quote Post
Seregio
сообщение Jul 28 2009, 12:30
Сообщение #7





Группа: Участник
Сообщений: 14
Регистрация: 3-06-09
Пользователь №: 49 874



Точность нужна 16 знаков после запятой.
В АРМе есть сопроцессор?
Go to the top of the page
 
+Quote Post
manul78
сообщение Jul 28 2009, 12:41
Сообщение #8


Местный
***

Группа: Участник
Сообщений: 403
Регистрация: 14-05-07
Из: Россия, г.Пенза
Пользователь №: 27 719



Цитата(Seregio @ Jul 28 2009, 16:30) *
Точность нужна 16 знаков после запятой.
В АРМе есть сопроцессор?


Сергей ! Неужели не умеешь пользоватся Google !

Специально для тебя ! biggrin.gif
Прикрепленные файлы
Прикрепленный файл  2005_07_110.pdf ( 359.76 килобайт ) Кол-во скачиваний: 39
 


--------------------
" Многие вещи нам непонятны не потому, что наши понятия слабы; но потому, что сии вещи не входят в круг наших понятий." (с) К.Прутков.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 20th July 2025 - 00:02
Рейтинг@Mail.ru


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