/* * 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 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 ); } }
void FrequencyManager_Initialize(void) { uint32_t EEProm_Value1 = Read_Long_EEProm(EEPROM_SENTINEL_LOC); //Read the 0 address to see if SI570 data has been stored if (EEProm_Value1 != EEPROM_SENTINEL_VAL) { FrequencyManager_ResetBandsToDefault(); FrequencyManager_WriteBandsToEeprom(); Write_Long_EEProm(EEPROM_SENTINEL_LOC, EEPROM_SENTINEL_VAL); } else { FrequencyManager_ReadBandsFromEeprom(); } // Initialize the F0 for the radio: F0 = (double) s_bandsData[FREQBAND_SI570_F0].CurrentFrequency; FrequencyManager_SetSelectedBand(FREQBAND_20M_PSK); }
/* * EEPROM Routines */ void FrequencyManager_WriteBandsToEeprom(void) { for (int i = 0; i < FREQBAND_NUMBER_OF_BANDS; i++) { Write_Long_EEProm(EEPROM_FREQBAND_OFFSET + i * 4, s_bandsData[i].CurrentFrequency); } }