ESP8266+Flprog нет сохранения системного параметра.

бесконечный EEPROM.commit() от *webserver.handleClient()

Вопросы от новичков
Ответить
Bullhorse
Рядовой
Сообщения: 16
Зарегистрирован: 14.01.2023{, 19:07}
Репутация: 1
Имя: Александр

ESP8266+Flprog нет сохранения системного параметра.

#1

Сообщение Bullhorse » 14.01.2023{, 19:45}

Немного истории - потом будет понятно зачем.
пилил проект пару дней.. esp, естественно, торчала в usb. Чуть добавил блоков в плату - перестал подниматься wifi. Недолго думая, что плата перетягивает много времени на себя, ручками вставлял в arduino ide код, выполняющий плату раз в секунду. Проект закончил, добрался до сохранения настроек при помощи блока "запись системного параметра" и выяснил, что параметр сохраняется только до перезагрузки контроллера. Накидал новую маленькую плату с сохранением одного системного параметра типа string и обнаружил, что оно тоже не сохраняет навсегда..
при помощи serial.println выяснилось, что контроллер бесконечно выполняет этот кусок в начале лупа.
СпойлерПоказать
void loop()
{
ESPControllerWifi_tspWebServer.handleClient();
if (isNeededCommitESP8266EEprom)
{
EEPROM.commit();
isNeededCommitESP8266EEprom=0;
}
Тормоза проекта, видимо, отсюда и растут. Что делать-то? Памяти esp уже хана?
eetest.flp
Тестовый файл flprog 8.0.0
(205.98 КБ) 28 скачиваний

Аватара пользователя
Phazz
Полковник
Сообщения: 2552
Зарегистрирован: 17.10.2016{, 15:38}
Репутация: 367
Откуда: Сургут
Имя: Анатолий

ESP8266+Flprog нет сохранения системного параметра.

#2

Сообщение Phazz » 14.01.2023{, 19:59}

Bullhorse, а куда print вставляли?

Bullhorse
Рядовой
Сообщения: 16
Зарегистрирован: 14.01.2023{, 19:07}
Репутация: 1
Имя: Александр

ESP8266+Flprog нет сохранения системного параметра.

#3

Сообщение Bullhorse » 14.01.2023{, 20:00}

после
EEPROM.commit();

Аватара пользователя
Phazz
Полковник
Сообщения: 2552
Зарегистрирован: 17.10.2016{, 15:38}
Репутация: 367
Откуда: Сургут
Имя: Анатолий

ESP8266+Flprog нет сохранения системного параметра.

#4

Сообщение Phazz » 14.01.2023{, 20:10}

Все верно, у вас нет входа разрешения записи и поэтому функция выполняется в каждом цикле. Но в библиотеке eeprom esp8266 есть защита, если данные не изменились, то запись не происходит.

Bullhorse
Рядовой
Сообщения: 16
Зарегистрирован: 14.01.2023{, 19:07}
Репутация: 1
Имя: Александр

ESP8266+Flprog нет сохранения системного параметра.

#5

Сообщение Bullhorse » 14.01.2023{, 20:20}

ОК, допилил. Теперь выполняется один раз при нажатии кнопки "Сохранить" . Но сохранения все равно не происходит.
eetest.flp
исправлено
(216.6 КБ) 19 скачиваний
Отправлено спустя 2 часа 37 минут 28 секунд:
Все таки сохраняется! Если прочитать ячейку сразу после eeprom.begin
и где-то в коде затирается..

Аватара пользователя
Phazz
Полковник
Сообщения: 2552
Зарегистрирован: 17.10.2016{, 15:38}
Репутация: 367
Откуда: Сургут
Имя: Анатолий

ESP8266+Flprog нет сохранения системного параметра.

#6

Сообщение Phazz » 14.01.2023{, 23:26}

2023-01-15 01-26-05 FLProg-7.4.6.png
2023-01-15 01-26-05 FLProg-7.4.6.png (4.81 КБ) 720 просмотров
тут и затирается

Отправлено спустя 2 минуты 6 секунд:
Bullhorse, прочитайте сначала в переменную на старте программы, а потом сравнивайте уже эту переменную с пользовательским параметром

Отправлено спустя 2 минуты 28 секунд:
И вообще зачем вам эта переменная нужна? Используйте сразу пользовательский параметр в вэб

Bullhorse
Рядовой
Сообщения: 16
Зарегистрирован: 14.01.2023{, 19:07}
Репутация: 1
Имя: Александр

ESP8266+Flprog нет сохранения системного параметра.

#7

Сообщение Bullhorse » 14.01.2023{, 23:32}

Да, уже нашел ) И не только тут. Ещё нельзя убрать галочку в системном параметре "Значение по умолчанию", даже если её там нет. Кусок кода надо удалить ручками, как будто она там есть.

Отправлено спустя 6 минут 15 секунд:
Эксперимент показал, что первой надо делать отключаемую плату в которой читаются параметры из EEPROM
плата1.png
плата1.png (3.96 КБ) 712 просмотров
Отправлено спустя 6 минут 34 секунды:
Phazz писал(а):
14.01.2023{, 23:31}
И вообще зачем вам эта переменная нужна? Используйте сразу пользовательский параметр в вэб
Я так и делал. Оно не сохранялось )

Аватара пользователя
Phazz
Полковник
Сообщения: 2552
Зарегистрирован: 17.10.2016{, 15:38}
Репутация: 367
Откуда: Сургут
Имя: Анатолий

ESP8266+Flprog нет сохранения системного параметра.

#8

Сообщение Phazz » 14.01.2023{, 23:48}

Bullhorse писал(а):
14.01.2023{, 23:45}
Эксперимент показал, что первой надо делать отключаемую плату в которой читаются параметры из EEPROM
просто ставите в начале проекта и через rtrig подключаете. Не нужен тут таймер вообще

Bullhorse
Рядовой
Сообщения: 16
Зарегистрирован: 14.01.2023{, 19:07}
Репутация: 1
Имя: Александр

ESP8266+Flprog нет сохранения системного параметра.

#9

Сообщение Bullhorse » 15.01.2023{, 03:07}

Phazz писал(а):
14.01.2023{, 23:31}
И вообще зачем вам эта переменная нужна? Используйте сразу пользовательский параметр в вэб
Теперь так и работает. Более того, не понял что произошло, но для типа данных string в системном параметре, не нужно больше удалять код загрузки значения по умолчанию, оно заработало. Для BYTE уже нет сил проверять

Bullhorse
Рядовой
Сообщения: 16
Зарегистрирован: 14.01.2023{, 19:07}
Репутация: 1
Имя: Александр

ESP8266+Flprog нет сохранения системного параметра.

#10

Сообщение Bullhorse » 02.02.2023{, 15:12}

Проблема со значениями по умолчанию решается перезагрузкой компьютера целиком. Т.е. это баг Flprog 8.0.0, который еще и кэшируется виндой.

Ответить

Вернуться в «Начинающим»