diff --git a/main.c b/main.c index 9a26eaf..10d28af 100644 --- a/main.c +++ b/main.c @@ -339,7 +339,24 @@ void main(void) if (edid_valid) { // read EDID is valid puts("I²C EDID valid\r\n"); IWDG_KR = IWDG_KR_KEY_REFRESH; // reset watchdog - led_error = !save_edid(); // save to EEPROM + +/* + puts("EDID data:\r\n"); + for (uint16_t i = 0; i < ARRAY_LENGTH(edid); i++) { + puth(edid[i]); + putc(' '); + } + puts("\r\n"); +*/ + + if (save_edid()) {; // save to EEPROM + puts("I²C EDID saved to EEPROM\r\n"); + } else { + led_error = true; // indicate write error + puts("could not save EDID to EEPROM\r\n"); + load_edid(); // re-load EDID from EEPROM + edid_valid = (0 != edid_length()); // verify if EDID is valid + } IWDG_KR = IWDG_KR_KEY_REFRESH; // reset watchdog } else { // read EDID is not valid puts("I²C EDID not valid, reloading from EEPROM\r\n");