Ви не увійшли.
Пишу код и вот почти на финише столкнулся с проблемой записи отрицательной переменной типа float. Пишется то все хорошо (и отрицательные и положительные значения), только вот после записи отрицательной переменной, если записать в EEPROM значение 0,0, оно отображается «-0,0» Как убрать знак минус??? Он то не влияет на работу, просто у человека появится логичный вопрос «почему 0 со знаком минус»:(.
Вот кусок кода
if (digitalRead(buttonUp)==0)
{
corrU2 = corrU2+0.1;
delay (150);
}
if (digitalRead(buttonDown)==0)
{
corrU2 = corrU2-0.1;
delay (150);
}
// значение изменяется от -0,5 до 0,5
if (corrU2>0.5) corrU2=0.5;
if (corrU2<-0.5) corrU2=-0.5;
if (digitalRead(buttonEnter)==0)
{
delay (200);
EEPROM_float_write(36, corrU2);
delay (100);
пробовал делать 0 по модулю, пробовал добавлять очень малое положительное число….ничего не помогло.
Причем еще заметил непонятную непонятность, есть точно такой же кусок кода только для другого канала, пишет в EEPROM_float_write(32, corrU1); и вот куда сперва записал отрицательное значение, там и проявляется 0 с минусом:( В остальном все работает как надо, только вот 0 с минусом смотрится не очень:( Прошу посодействовать:)))
Что не так? Как с этим бороться?
Неактивний
1 обнулите по пределам
if (fabs(data) < 0.00001 ) data = 0.0;
2 IEE754 поковыряйте
3 на целочисленную математику переходите
пробовал обнулять, пробовал и число по модулю.... не помогает. на целочисленное не могу, это коэффициент корректировки.
С IEE754 не работал, сейчас почитаю
Неактивний