diff --git a/code/inc/menu.h b/code/inc/menu.h index 44b769d..a616504 100644 --- a/code/inc/menu.h +++ b/code/inc/menu.h @@ -1,7 +1,10 @@ #include +#include extern int8_t menu_val_timezone; +extern int8_t menu_val_timezone_ee EEMEM; extern uint8_t menu_val_format; +extern uint8_t menu_val_format_ee EEMEM; typedef enum { OFF, diff --git a/code/src/main.c b/code/src/main.c index 9c7b5c8..c4505c5 100644 --- a/code/src/main.c +++ b/code/src/main.c @@ -1,6 +1,7 @@ #include -#include +#include #include +#include #include #include #include "pinout.h" @@ -88,6 +89,13 @@ void check_dip_switches() { } void setup(){ + menu_val_timezone = eeprom_read_byte((uint8_t*)&menu_val_timezone_ee); + menu_val_format = eeprom_read_byte(&menu_val_format_ee); + if(menu_val_format != 24 && menu_val_format != 12){ + menu_val_format = 24; + eeprom_write_byte(&menu_val_format_ee, menu_val_format); + } + DDRA = ENABLE_TUBE_SUPPLY; DDRB = STATUS_LED_B diff --git a/code/src/menu.c b/code/src/menu.c index 72b2642..d42cd42 100644 --- a/code/src/menu.c +++ b/code/src/menu.c @@ -5,8 +5,10 @@ menu_state_t state = OFF; uint8_t selected = 0; -int8_t menu_val_timezone = -1; -uint8_t menu_val_format = 24; +int8_t menu_val_timezone_ee EEMEM; +int8_t menu_val_timezone; +uint8_t menu_val_format_ee EEMEM; +uint8_t menu_val_format; //void debug_menu(){ // printf("state: %d\r\n", state); @@ -21,11 +23,6 @@ uint8_t get_menu_active(){ return 0; } -const char *text[] = { - "test ", - " test" -}; - void enter_menu(){ switch(state){ case OFF: @@ -49,6 +46,7 @@ const char* get_menu_text(){ switch(state){ case TIMEZONE: res = " "; + menu_val_timezone = eeprom_read_byte((uint8_t*)&menu_val_timezone_ee); if(menu_val_timezone < 0) res[3] = '-'; else @@ -92,6 +90,7 @@ void menu_up_down(uint8_t up_down){ menu_val_timezone = 12; if(menu_val_timezone > 12) menu_val_timezone = -12; + eeprom_write_byte((uint8_t*)&menu_val_timezone_ee, menu_val_timezone); break; case FORMAT: if(menu_val_format == 12)