#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(); // TODO: Check for missing settings */ } 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)); // TODO: Check for missing settings Minimal_EEPROM_Lock(); */ }