diff --git a/main.c b/main.c --- a/main.c +++ b/main.c @@ -7,6 +7,7 @@ #include "spi.h" #include "stringhelpers.h" #include "display.h" +#include "storage.h" #include "usb_device.h" #include "usbd_cdc_if.h" @@ -15,9 +16,6 @@ // Prototypes // Move to header file void process(); -void restore_settings(); -void save_settings(); -void save_setpoints(); void SystemClock_Config(void); therm_settings_t set; @@ -88,7 +86,7 @@ int main(void) status.pid_enabled = 0; // Load settings (if any) from EEPROM - restore_settings(); + restore_settings(&set); // Go to brew instead of idle if configured thusly if(set.boottobrew) @@ -341,68 +339,4 @@ void process() } } -void save_settings() -{ - // TODO: Rework with FLASH read/write -/* - Minimal_EEPROM_Unlock(); - // Try programming a word at an address divisible by 4 - Minimal_EEPROM_ProgramWord(EEPROM_BASE_ADDR + EEPROM_ADDR_BOOTTOBREW, boottobrew); - Minimal_EEPROM_ProgramWord(EEPROM_BASE_ADDR + EEPROM_ADDR_WINDUP_GUARD, windup_guard); - Minimal_EEPROM_ProgramWord(EEPROM_BASE_ADDR + EEPROM_ADDR_K_P, k_p); - Minimal_EEPROM_ProgramWord(EEPROM_BASE_ADDR + EEPROM_ADDR_K_I, k_i); - Minimal_EEPROM_ProgramWord(EEPROM_BASE_ADDR + EEPROM_ADDR_K_D, k_d); - Minimal_EEPROM_ProgramWord(EEPROM_BASE_ADDR + EEPROM_ADDR_UNITS, temp_units); - Minimal_EEPROM_Lock(); -*/ -} - -void save_setpoints() -{ - // TODO: Rework with FLASH read/write -/* - - Minimal_EEPROM_Unlock(); - Minimal_EEPROM_ProgramWord(EEPROM_BASE_ADDR + EEPROM_ADDR_BREWTEMP, setpoint_brew); - Minimal_EEPROM_ProgramWord(EEPROM_BASE_ADDR + EEPROM_ADDR_STEAMTEMP, setpoint_steam); - Minimal_EEPROM_Lock(); -*/ -} - - -// TODO: Make a struct that has all settings in it. Pass by ref to this func in a library. -void restore_settings() -{ - // TODO: Rework with FLASH read/write -/* Minimal_EEPROM_Unlock(); - while(Minimal_FLASH_GetStatus()==FLASH_BUSY); - boottobrew = (*(__IO uint32_t*)(EEPROM_BASE_ADDR + EEPROM_ADDR_BOOTTOBREW)); - - while(Minimal_FLASH_GetStatus()==FLASH_BUSY); - windup_guard = (*(__IO uint32_t*)(EEPROM_BASE_ADDR + EEPROM_ADDR_WINDUP_GUARD)); - - while(Minimal_FLASH_GetStatus()==FLASH_BUSY); - k_p = (*(__IO uint32_t*)(EEPROM_BASE_ADDR + EEPROM_ADDR_K_P)); - - while(Minimal_FLASH_GetStatus()==FLASH_BUSY); - k_i = (*(__IO uint32_t*)(EEPROM_BASE_ADDR + EEPROM_ADDR_K_I)); - - while(Minimal_FLASH_GetStatus()==FLASH_BUSY); - k_d = (*(__IO uint32_t*)(EEPROM_BASE_ADDR + EEPROM_ADDR_K_D)); - - while(Minimal_FLASH_GetStatus()==FLASH_BUSY); - setpoint_brew = (*(__IO uint32_t*)(EEPROM_BASE_ADDR + EEPROM_ADDR_BREWTEMP)); - - while(Minimal_FLASH_GetStatus()==FLASH_BUSY); - setpoint_steam = (*(__IO uint32_t*)(EEPROM_BASE_ADDR + EEPROM_ADDR_STEAMTEMP)); - while(Minimal_FLASH_GetStatus()==FLASH_BUSY); - temp_units = (*(__IO uint32_t*)(EEPROM_BASE_ADDR + EEPROM_ADDR_UNITS)); - - Minimal_EEPROM_Lock(); */ -} - - - - - // vim:softtabstop=4 shiftwidth=4 expandtab