// read global config from eeprom, if MAGICs changed, set to defaults // returns 1 if calibration values was set to defaults u8 config_global_read(void) { u8 calib_changed = 0; eeprom_read_global(); if (config_global.magic_global != CONFIG_GLOBAL_MAGIC) { // global config changed, initialize whole eeprom eeprom_empty_models(); calib_changed = config_global_set_default(); // do not write magic_global yet to eliminate interrupted initialization // (for example flash-verify after flash-write in STVP) config_global.magic_global = 0; config_global_save(); // and now as last set magic_global config_global.magic_global = CONFIG_GLOBAL_MAGIC; config_global_save(); } else if (config_global.magic_model != CONFIG_MODEL_MAGIC) { // model config changed, empty all models eeprom_empty_models(); // set model number to 0 config_global.model = 0; config_global_save(); // set new model magic config_global.magic_model = CONFIG_MODEL_MAGIC; config_global_save(); } return calib_changed; }
static void gs_reset_model_all(u8 change) { if (change == 0xff) { lcd_set(L7SEG, LB_EMPTY); if (gs_reset_flag) { gs_reset_flag = 0; cg.model = 0; config_global_save(); eeprom_empty_models(); menu_load_model(); } return; } if (change) gs_reset_flag ^= 1; lcd_7seg(L7_R); if (gs_reset_flag) lcd_chars("YES"); else lcd_chars("MOD"); }