|
|
|
|
Возможно ли все вычисления вести не в плавающей запятой, а в фиксированной или даже целочисленно, с использованием таблиц. На выходе МК наверняка требуется целочисленный результат? Возможно ли вычисления проводить так, чтобы делать их "доводку" вне МК? Возможно даже попробовать представить большую часть программы МК в виде таблицы с добавлением насложной арифметики. Наконец, можно перейти на язык ассемблера. Компиляторы ЯВУ не настолько оптимальны, а язык ассемблера, тем более для МК, не настолько сложен как многие думают но даёт гораздо большие возможности. Конечно, для его освоения требуется время. |
|
|
caddr: Можно. Интересно, что это за ряд получится ? Это уже не ряд, а квадрат какой-то. Пример, плиз. А что, логарифм и экспонента уже заимели второй аргумент ? To gan : < Все калькуляторы (и наверняка и компиляторы) именно так вычисляют значения фукций. > компиляторы ничего не вычисляют, а подставляют вызов библиотечной функции, которая уж этим и занимается. To Vlad_Petr : Форум был очень приличный ru.embedded, я несколько раз получал оттуда существенную помощь - не прямо решение задачи, а обсуждение как-то раскрепощало мысл`ю, снимало шоры, и ответ находился : да как же я, дурак, сразу не дотумкал ! Но часто мнения были слишком категоричны, появилось два лагеря заклятых между собой "друзей", и форум ушел во флуд, а нормальные люди ушли. Говорят, в Нью-Йорке оттуда, где поселяются русские, уходят даже негры  ------------------- А насчет арифметики - я использовал нестандартную : 1 байт знак-порядок, 2 байта мантисса ( без скрытого разряда ). Точности мне хватало ( если точность измерения 1%, точность вычислений 0.0001% ни к чему ). Попробовали раз сравнить с 4-байтной Сишной арфметикой - разность времени выполнения в 4 раза ! А со временем у меня всегда была напряженка : начиная задачу, выбирал вроде проц с запасом, а по ходу заказчик подвешивает все новые и новые функции, а это все в реалтайме, синусовина 50-герцовая ждать не станет Вот и приходилось исползовать ресурсы на 150%
|
|
|
Bul_d_Ozer: Интересно, что это за ряд получится ? - Я не ходячий справочник по матану. Подробнее ищите в учебниках или поисковиках (разложение в ряд Тейлора функции нескольких переменных). |
|
|
Bul_d_Ozer: А насчет арифметики - я использовал нестандартную : 1 байт знак-порядок, 2 байта мантисса ( без скрытого разряда ). И смнусы/логарифмы/экспоненты и т. д. тоже реализовали? Внушает© Только не надо всем это советовать Я понимаю, приятно рассказать про такие достижения, но современные микроконтроллеры позволяют использовать языки высокого уровня с их отлаженными, проверенными математическими библиотеками (зачастую написанными на том же самом ассемблере). И далеко не факт, что самописная библиотека будет меньше/безглючнее.
|
|
|
А если питание не лимитирует возьмите из хлама что-нибудь типа 8087 там страшной скорости арифметика заточена. Стековый калькулятор со всеми стандартными мат.функциями. И ее контроллером можно юзать. Даром, высочайшая точность, считает очень быстро...но жрет... |
|
|
AHTOXA: Только не надо всем это советовать... Я понимаю, приятно рассказать про такие достижения, но современные микроконтроллеры позволяют использовать ..... Разумеется, они позволяют. У них ресурсов больше. Но тут опять найдется Bul_d_Ozer может и помоложе, и опять сделает что-то по своему, и это будет очень быстрая и эффективная программа. Окажется, что задача опять не могла быть решена стандартными методами... А остальные снова будут ждать новые, все более современные контроллеры......ДИАЛЕКТИКА.... Думаю, тут все просто: Если хотите эффективно использовать ресурсы контроллера, - asm Вам в руки!. Когда будете этим asm владеть, мысли как сделать нестандартно и очень эффективно, сами придут. В конце концов, как и какая там внутри софтинка крутится никого не волнует.... |
|
|
Vlad_Petr: Но тут опять найдется Bul_d_Ozer может и помоложе, и опять сделает что-то по своему, и это будет очень быстрая и эффективная программа. ... только писать и отлаживать её он будет полгода, а то и больше, и за это время конкуренты, сразу взявшие подходящий под задачу МК, уже займут рынок... ДИАЛЕКТИКА  |
|
|
Ну это вряд ли Долгое написание программ на ассемблере - это больше миф, чем правда. Я тоже хотел как один из вариантов предложить использовать мат. сопроцессор, но ему нужно будет организовать тактовый генератор и синхронизацию с процессором, нужно подумать, стоит ли оно того. Всё таки призываю попробовать глобальную оптимизацию программы, а не оптимизацию конкретных матем. операций. |
|
|
Vov4ik: Ну это вряд ли Долгое написание программ на ассемблере - это больше миф, чем правда. Это — правда. Я знаю про это не понаслышке Сколько займёт времени написание нестандартной математической библиотеки? А полноценное её тестирование? И так ли уж велик будет выигрыш? Библиотеки языка си тоже не пионеры пишут. Vov4ik: Я тоже хотел как один из вариантов предложить использовать мат. сопроцессор Вот это уже точно "удалять гланды через ж" У автора темы формула занимает половину(кажется) памяти программ. Десять формул займут 3/4. Не влезет - взять контроллер с вдвое большей памятью. Скорость, как он пишет, не критична. Зачем здесь сопроцессор?! Зачем здесь ассемблер? Vov4ik: Всё таки призываю попробовать глобальную оптимизацию программы, а не оптимизацию конкретных матем. операций. А я предлагаю не париться Есть ещё половина памяти программ, зачем паниковать раньше времени?  |
|
|
AHTOXA: ...зачем паниковать раньше времени? Присоединяюсь. Все библиотеки, какие требуются, уже прилинкованы, вторая формула оставшуюся половину памяти точно не займет. Можно еще с десяток таких же формул закатать 
|
|
|
|
|