bool EEcfgFlag = false; bool EEdawnFlag = false; bool EEpresetFlag = false; void EE_startup() { // старт епром if (EEPROM.read(511) != EE_KEY) { EEPROM.write(511, EE_KEY); EEPROM.put(0, cfg); EEPROM.put(sizeof(cfg), dawn); EEPROM.put(sizeof(cfg) + sizeof(dawn), preset); EEPROM.commit(); DEBUGLN("First start"); } EEPROM.get(0, cfg); EEPROM.get(sizeof(cfg), dawn); EEPROM.get(sizeof(cfg) + sizeof(dawn), preset); // запускаем всё trnd.setChannel(cfg.group); FastLED.setMaxPowerInVoltsAndMilliamps(STRIP_VOLT, cfg.maxCur * 100); } void EE_updateCfg() { EEcfgFlag = true; EEtmr.restart(); } void EE_updateDawn() { EEdawnFlag = true; EEtmr.restart(); } void EE_updatePreset() { EEpresetFlag = true; EEtmr.restart(); } void checkEEupdate() { if (EEtmr.isReady()) { if (EEcfgFlag || EEdawnFlag || EEpresetFlag) { if (EEcfgFlag) { EEcfgFlag = false; EEPROM.put(0, cfg); DEBUGLN("save cfg"); } if (EEdawnFlag) { EEdawnFlag = false; EEPROM.put(sizeof(cfg), dawn); DEBUGLN("save dawn"); } if (EEpresetFlag) { EEpresetFlag = false; EEPROM.put(sizeof(cfg) + sizeof(dawn), preset); DEBUGLN("save preset"); } EEPROM.commit(); } EEtmr.stop(); } } void EE_updCfgRst() { EE_updCfg(); delay(100); ESP.restart(); } void EE_updCfg() { EEPROM.put(0, cfg); EEPROM.commit(); }