diff --git a/storage.c b/storage.c new file mode 100644 --- /dev/null +++ b/storage.c @@ -0,0 +1,64 @@ +#include "stm32f0xx_hal.h" +#include "states.h" + +void save_settings(therm_settings_t *tosave) +{ + // 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(therm_settings_t *tosave) +{ + // 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(therm_settings_t *tosave) +{ + // 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(); */ +} + +