Страница 1 из 1

Почему Arduino не любит математику ?

Добавлено: Сб дек 05, 2020 12:57:26
74LS00
Помню не раз писал формулу с чётным окончанием, чтото вроде 20/1024 и получал кукиш и без масла, а вот 10/512.
Ну уж нет, потренируй мозги, изволь лично константы складывать и решения вписывать.

и вот опять

Код: Выделить всё

#define A_MAX 75
float Amper_Bat ; 

Amper_Bat = A_MAX/1024 ;
ну вы уже поняли A_MAX/1024=0.00
и вообще он не желает что либо делить.

Если скормить  0.0732421875 он их показывает как 0.07, дело то не в точке. Там после этого ещё умножение, то что поделили всегда 0.

Вот только в другом куске кода формулы ещё круче и там они работают

Re: Почему Arduino не любит математику ?

Добавлено: Сб дек 05, 2020 14:30:50
As
И причем тут Ардуино? :dont_know: Проблема явно программная! Нужна точность - используйте соответствующие библиотеки, только будьте готовы к тому, что точные вычисления потребуют несколько больше времени... :)

Re: Почему Arduino не любит математику ?

Добавлено: Сб дек 05, 2020 14:45:40
NStorm
Если не уметь программировать на Си, можно обвинять Ардуино.
А правильно писать так:

Код: Выделить всё

Amper_Bat = (float)A_MAX/1024;
Или так:

Код: Выделить всё

#define A_MAX 75.0
Это в любом учебнике по языку написано будет! Стоит обратиться к "букварю", прежде чем что-то обвинять не зная самых элементарных основ.

Добавлено after 11 minutes 25 seconds:
https://ideone.com/l5tdmv
Изображение

Re: Почему Arduino не любит математику ?

Добавлено: Сб дек 05, 2020 17:50:58
74LS00
Это ардуино, а не хрень какаято, это итальянская хрень.

Код: Выделить всё

#define A_MAX 75.0
не работает. Хотя почти тоже самое с вольтами работало.

Код: Выделить всё

const float A_MAX=75.0;
а вот это почемуто работает.
Хотя один фиг так и не увидел пока не вписал полную формулу, а частично 0.07 отображалось только умножив на 100.
Но всё это началось с того что формула как раз не работала.
Тут я бы назвал компилятор очень кривым.
Amper_Bat = (float)A_MAX/1024;
я брал кусок кода православного сишного и если там есть (float), то формула равна 0 всегда. А если из формулы выкинуть и поставить в начале кода, то сразу начинает работать.
Я так понял есть дофига вариантов написания, и какой будет рабочим надо угадать.

Букваря по ардуино как раз и нет, а сишный искать ничуть не проще, ардуинщики об этом не подумали

Re: Почему Arduino не любит математику ?

Добавлено: Сб дек 05, 2020 18:45:57
NStorm
Полнейший бред.

Re: Почему Arduino не любит математику ?

Добавлено: Сб дек 05, 2020 19:42:06
BOB51
Внимательно учим основы Си...
:(