Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: кто работал с математикой на WINAVR
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > MCS51, AVR, PIC, STM8, 8bit
Seregio
В WINAVR по умолчанию float = double = 32 битам, кто знает как повысить точность расчетов для тригонометрических функций ?
Работаю с ATMEGA128.
Genadi Zawidowski
Страница 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 переходите.
Seregio
спасибо за ответ, буду писать библиотеку.
Genadi Zawidowski
Сколько времени на это? Не быстрее ли окажется на другой процессор перейти - программа с winar на другой gcc - yagarto - переносится за день (если ассемблера нет в программме).
haker_fox
Цитата(Genadi Zawidowski @ Jul 27 2009, 16:47) *
Сколько времени на это? Не быстрее ли окажется на другой процессор перейти - программа с winar на другой gcc - yagarto - переносится за день (если ассемблера нет в программме).

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

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

Какая точность Вам необходима? Может быть табличное решение (для ускорение вычислений) применить + свой тип дробных чисел и методы работы с ними?
Genadi Zawidowski
Цитата
Гм, так уж и за день, в независимости от объема и сложности ПО, а также знаний другого микроконтроллера?


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

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

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


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

Специально для тебя ! biggrin.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.