Математические функции

Тема в разделе "Микроконтроллеры AVR", создана пользователем Егор Колмаков, 2 ноя 2015.

Метки:
  1. Доброго времени суток!
    Друзья, возможно ли реализовать в скетче более сложное математическое вычисление?
    Сейчас мне необходимо вычислять логарифмы, а позже понадобится работать с фильтрами.
    Работал ли кто нибудь? Посоветуйте примеры!
    Всех благ!
     
  2. Megakoteyka

    Megakoteyka Оракул Модератор

    Все можно, хоть интегралы, гуглите численные методы. В некоторых случаях имеет смысл заранее посчитать таблицу значений и в ходе работы просто делать из нее выборку.
     
    BGreen нравится это.
  3. Спасибо Мегакотейка!
     
  4. geher

    geher Гуру

    Только следует помнить, что double на AVR - это тот же float, что приводит к снижению точности вычислений.
    Я делал вычисления восходов/заходов Луны и Солнца.
    В результате одна и та же программа на Mega 2560 дает погрешность до 2 минут, а на Teensy 3.1 (ARM 32 бит) считает точно.
    Вроде проблему можно решить при помощи специальных библиотек, которые реализуют что-то вроде полноценного double, но пока руки не доходят проверить. Да и, скорее всего, будет некоторая потеря производительности.

    Так что если особая точность не нужна, и float хватит - все нормально.
    Если нужна, и нужен double - появляются проблемы, которые придется решать.