Ну а для тех кто не любит читать довожу до сведения - использование математических операций с переменными типа Float на 8ми битных камнях AVR чревато "нежданчиками"
Использование Float в AVR
-
Ingwar
- Полковник
- Сообщения: 1928
- Зарегистрирован: 28 окт 2015, 22:47
- Откуда: Ленобласть
- Имя: Игорь
- Поблагодарили: 3 раза
Использование Float в AVR
Для кого-то информация давно известна.
Ну а для тех кто не любит читать довожу до сведения - использование математических операций с переменными типа Float на 8ми битных камнях AVR чревато "нежданчиками"
Ну а для тех кто не любит читать довожу до сведения - использование математических операций с переменными типа Float на 8ми битных камнях AVR чревато "нежданчиками"
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.
-
Naladchik
- Капитан
- Сообщения: 909
- Зарегистрирован: 04 окт 2015, 19:10
- Откуда: Новосибирск
- Имя: Павел
- Благодарил (а): 22 раза
- Поблагодарили: 22 раза
Использование Float в AVR
По поводу нежданчиков любопытная информация попалась на сайте Гайвера.
... Если при умножении или делении в текущем действии результат превысит 32768 – ячейка переполнится и мы получим некорректный результат. Для исправления ситуации нужно .... ".
Сам не проверял, за достоверность не ручаюсь, но как информацию для размышлений для себя принял.
-
Ingwar
- Полковник
- Сообщения: 1928
- Зарегистрирован: 28 окт 2015, 22:47
- Откуда: Ленобласть
- Имя: Игорь
- Поблагодарили: 3 раза
Использование Float в AVR
Выкладывать проект, на котором "споткнулся" не буду, поскольку не искал в нем локальное проблемное место.
Просто опишу - делал дозирующий насос с калибровкой по прокачиваемому продукту и результат фактического дозирования отличался от заданного до и выше 10%. Большая часть математики была на флоат. И да, вычисления производились не в каждом цикле, а только однократно по вызову в настройках
Ну и погуглить про Float без FPU не трудно.
Самое простое описание.
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.
- RedSky
- Лейтенант
- Сообщения: 576
- Зарегистрирован: 19 дек 2016, 20:07
- Откуда: Днепропетровск
- Имя: Алексей
- Поблагодарили: 2 раза
Использование Float в AVR
Это он о типе int.Naladchik писал(а): 08 янв 2023, 18:49 Если при умножении или делении в текущем действии результат превысит 32768
Float не рекомендуется сравнивать на ==, >=,<=. Но это не только в avr.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость
