Использование Float в AVR

Ответить
Ingwar
Полковник
Сообщения: 1928
Зарегистрирован: 28 окт 2015, 22:47
Откуда: Ленобласть
Имя: Игорь
Поблагодарили: 2 раза

Использование Float в AVR

Сообщение Ingwar »

Для кого-то информация давно известна.
Ну а для тех кто не любит читать довожу до сведения - использование математических операций с переменными типа Float на 8ми битных камнях AVR чревато "нежданчиками" :smile110:
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.
artemka19
Лейтенант
Сообщения: 540
Зарегистрирован: 03 сен 2020, 15:41
Откуда: Питер
Имя: Артем
Поблагодарили: 1 раз

Использование Float в AVR

Сообщение artemka19 »

пример бы не помешал)
Naladchik
Капитан
Сообщения: 908
Зарегистрирован: 04 окт 2015, 19:10
Откуда: Новосибирск
Имя: Павел
Благодарил (а): 20 раз
Поблагодарили: 22 раза

Использование Float в AVR

Сообщение Naladchik »

Ingwar писал(а): 08 янв 2023, 18:15 ... на 8ми битных камнях AVR чревато "нежданчиками"
По поводу нежданчиков любопытная информация попалась на сайте Гайвера.
... Если при умножении или делении в текущем действии результат превысит 32768 – ячейка переполнится и мы получим некорректный результат. Для исправления ситуации нужно .... ".
Сам не проверял, за достоверность не ручаюсь, но как информацию для размышлений для себя принял.
Win10-64. FLProg Portable.
Изображение
Ingwar
Полковник
Сообщения: 1928
Зарегистрирован: 28 окт 2015, 22:47
Откуда: Ленобласть
Имя: Игорь
Поблагодарили: 2 раза

Использование Float в AVR

Сообщение Ingwar »

artemka19 писал(а): 08 янв 2023, 18:27 пример бы не помешал)
Выкладывать проект, на котором "споткнулся" не буду, поскольку не искал в нем локальное проблемное место.
Просто опишу - делал дозирующий насос с калибровкой по прокачиваемому продукту и результат фактического дозирования отличался от заданного до и выше 10%. Большая часть математики была на флоат. И да, вычисления производились не в каждом цикле, а только однократно по вызову в настройках :smile38: . Так вот, переход на целые числа сходу изменил погрешность дозирования до 0,3%.
Ну и погуглить про Float без FPU не трудно.
Самое простое описание.
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.
Аватара пользователя
RedSky
Лейтенант
Сообщения: 576
Зарегистрирован: 19 дек 2016, 20:07
Откуда: Днепропетровск
Имя: Алексей
Поблагодарили: 1 раз

Использование Float в AVR

Сообщение RedSky »

Naladchik писал(а): 08 янв 2023, 18:49 Если при умножении или делении в текущем действии результат превысит 32768
Это он о типе int.
Float не рекомендуется сравнивать на ==, >=,<=. Но это не только в avr.
Ответить

Вернуться в «Справочники и даташиты»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя