/* * EEPROM Routines */ void FrequencyManager_WriteBandsToEeprom(void) { debug (GUI, "FrequencyManager_WriteBandsToEeprom:\n"); uint32_t eepromFreq; uint16_t eepromMode; char text; for (int i = 0; i < FREQBAND_NUMBER_OF_BANDS; i++) { eepromFreq = Read_Long_EEProm(EEPROM_FREQBAND_OFFSET + i * 6); if (s_bandsData[i].Setpoint != eepromFreq) Write_Long_EEProm(EEPROM_FREQBAND_OFFSET + i *+6, s_bandsData[i].Setpoint); eepromMode = Read_Int_EEProm(EEPROM_FREQBAND_OFFSET + i * 6 + 4); if (s_bandsData[i].Mode != eepromMode) Write_Int_EEProm(EEPROM_FREQBAND_OFFSET + i * 6 + 4, s_bandsData[i].Mode); } for (int i = 0; i < FREQBAND_NUMBER_OF_BANDS; i++) { // buf1 = FrequencyManager_DisplayBandName (i); for (int c=0; c<freqLabel_length; c++){ text = (char)I2C_ReadEEProm(EEPROM_FREQBAND_OFFSET + (FREQBAND_NUMBER_OF_BANDS*6) + i*(freqLabel_length+1) + c); if (s_bandsData[i].Name[c] != text) I2C_WriteEEProm(EEPROM_FREQBAND_OFFSET + (FREQBAND_NUMBER_OF_BANDS*6)+ i*(freqLabel_length+1) + c, s_bandsData[i].Name[c]); } } }
void Options_ReadFromEEPROM(void) { for (int i = 0; i < NUM_OPTIONS; i++) { int16_t newValue = Read_Int_EEProm(EEPROM_OFFSET + i * 2); Options_SetValue(i, newValue); } }
_Bool Options_HaveValidEEPROMData(void) { //Read the 50 address to see if IQ data has been stored int16_t sentinel = Read_Int_EEProm(EEPROM_SENTINEL_LOC); return (sentinel == EEPROM_SENTINEL_VAL); }
void FrequencyManager_ReadFiltersFromEeprom(void) { debug(GUI, "FrequencyManager_ReadFiltersFromEeprom:\n"); for (int i = 0; i < FREQ_NUMBER_OF_FILTER_BANDS; i++) { s_bandTable[i].Code = Read_Int_EEProm(EEPROM_FILTERBAND_OFFSET + i*6); s_bandTable[i].Frequency = Read_Long_EEProm(EEPROM_FILTERBAND_OFFSET+ i*6 + 2); debug(GUI, "i = %d, code = %d, frequency = %d \n", i, s_bandTable[i].Code, s_bandTable[i].Frequency ); } }
void FrequencyManager_ReadBandsFromEeprom(void) { debug (GUI, "FrequencyManager_ReadBandsFromEeprom:\n"); for (int i = 0; i < FREQBAND_NUMBER_OF_BANDS; i++) { s_bandsData[i].CurrentFrequency = Read_Long_EEProm(EEPROM_FREQBAND_OFFSET+ i * 6); s_bandsData[i].Setpoint = Read_Long_EEProm(EEPROM_FREQBAND_OFFSET+ i * 6); s_bandsData[i].Mode = Read_Int_EEProm(EEPROM_FREQBAND_OFFSET+ i * 6 + 4); } for (int i = 0; i < FREQBAND_NUMBER_OF_BANDS; i++) { for (int c=0; c<freqLabel_length; c++){ s_bandsData[i].Name[c] = (char)I2C_ReadEEProm(EEPROM_FREQBAND_OFFSET + (FREQBAND_NUMBER_OF_BANDS*6) + i*(freqLabel_length+1) + c); } } }
void FrequencyManager_WriteFiltersToEeprom(void) { uint16_t eepromCode; uint32_t eepromFreq; debug(GUI, "FrequencyManager_WriteFiltersToEeprom:\n"); for (int i = 0; i < FREQ_NUMBER_OF_FILTER_BANDS; i++) { eepromCode = Read_Int_EEProm(EEPROM_FILTERBAND_OFFSET + i*6); if (s_bandTable[i].Code != eepromCode) Write_Int_EEProm(EEPROM_FILTERBAND_OFFSET + i*6, s_bandTable[i].Code); eepromFreq = Read_Long_EEProm(EEPROM_FILTERBAND_OFFSET+ i*6 + 2); if (s_bandTable[i].Frequency != eepromFreq) Write_Long_EEProm(EEPROM_FILTERBAND_OFFSET + i*6 + 2, s_bandTable[i].Frequency); debug(GUI, "i = %d, code = %d, frequency = %d \n", i/6, s_bandTable[i].Code, s_bandTable[i].Frequency ); } }