цифры в епром
- Войдите на сайт для отправки комментариев
Втр, 12/03/2013 - 15:30
Добрый день, есть вопрос)
Как можно записать число 12,34567 в EEPROM для дальнейшего использования в вычислениях?
Пишется только целая часть, дробная отбрасывается (оно и понятно - в епроме int).
Умножал на 100000 перед записью, всё нормально записалось и считалось - 1234567, но вот когда хочу вернуть к первоначальному виду 12,34567 (т.е. делю считанное на 100000) получаю 12.00000 и хоть тресни. Использую EEPROM2.
Посоветуйте как поступить.
Добрый день.
А записываешь во float? не в int или byte?
Попробуй делить на 100000.0 - думаю поможет
Вы же сами пишите "оно и понятно - в епроме int"
А как вы думаете тип int может иметь дробные значения ?
Правильно , не может. Так что используйите тип данных float.
Попробуй делить на 100000.0 - думаю поможет
Ах ты ж ёжик жыш!
Дай Бог тебе здоровья, уважаемый ales2k !
А я себе голову уже сломал, а решение так банально!
#include <EEPROM.h> void setup() { float val_1 = 30.12345; float val_2 = 0; // запись в ЕЕПРОМ byte *x = (byte *)&val_1; for(int i = 0; i < 4; i++) EEPROM.write(i, x[i]); // чтение из ЕЕПРОМ byte xx[4]; for(int i = 0; i < 4; i++) xx[i] = EEPROM.read(i); float *y = (float*)&xx; val_2 = y[0]; // выводим в сериал Serial.begin(9600); Serial.println(val_2, 5); } void loop(){}Спасибо, maksim.
Добрый день.
В инете не могу найти информацию, прошу оказать помощь в части кода:)
Суть такова есть 4 кнопки (Up, Down, Esc, Enter), есть дисплей 1602 и arduino nano. Надо при помощи этих 4-х кнопок в программу вводить различные уставки типа float с последующей записью в EEPROM. Например мне надо задать уставку по напряжению отключения 12,6В. Как это организовать? Вариант setpoint=setpoint+0.1; не предлагать:))) Буду очень благодарен если кто подскажет:)
setpoint += 0.1
setpoint += 0.1
это тот же вариант что я и привел просто по другому записан:) это очень утомительно, особенно если необходимо будет ввести например 65,5В.
Да ладно, а я не знал...(сарказм)
Можно сделать обработку длинного нажатия и прибавлять в этом случае 1...10...20...50...много
Да ладно, а я не знал...(сарказм)
Можно сделать обработку длинного нажатия и прибавлять в этом случае 1...10...20...50...много
как?:) думал как-то завязаться с millis ()..... думаю может сделать прибавление по 0,1, но при длительном удержании кнопки как-то ускорить ввод.....
http://arduino.ru/forum/programmirovanie/rabota-s-knopkami-v-pomoshch-no...
http://arduino.ru/forum/programmirovanie/klass-titanovyi-velosiped-dlya-...
http://arduino.ru/forum/programmirovanie/rabota-s-knopkami-v-pomoshch-no...
http://arduino.ru/forum/programmirovanie/klass-titanovyi-velosiped-dlya-...
первую ссылку видел уже, это не то:) а вот вторая интересней:) буду читать:) спасибо.