From 0997590b972a5d89d548006ba61afa565d263790 Mon Sep 17 00:00:00 2001 From: Sjef Verhoeven PE5PVB Date: Tue, 3 Oct 2023 17:00:07 +0200 Subject: [PATCH] BW for AM and FM is now stored in flash --- TEF6686_ESP32.ino | 15 +++++++++++++-- src/constants.h | 4 +++- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/TEF6686_ESP32.ino b/TEF6686_ESP32.ino index cca7718..1ed74cf 100644 --- a/TEF6686_ESP32.ino +++ b/TEF6686_ESP32.ino @@ -119,6 +119,8 @@ byte batteryold; byte batteryoptions; byte batteryoptionsold; byte BWset; +byte BWsetAM; +byte BWsetFM; #ifdef CHINA_PORTABLE byte hardwaremodel = PORTABLE_ILI9341; #else @@ -416,6 +418,8 @@ void setup() { radio.rds.sortaf = EEPROM.readByte(EE_BYTE_SORTAF); stationlistid = EEPROM.readByte(EE_BYTE_STATIONLISTID); fmdeemphasis = EEPROM.readByte(EE_BYTE_FM_DEEMPHASIS); + BWsetFM = EEPROM.readByte(EE_BYTE_BWSET_FM); + BWsetAM = EEPROM.readByte(EE_BYTE_BWSET_AM); LWLowEdgeSet = FREQ_LW_LOW_EDGE_MIN; // later will read from flash LWHighEdgeSet = FREQ_LW_HIGH_EDGE_MAX; // later will read from flash @@ -1617,7 +1621,7 @@ void SelectBand() { seek = false; if (tunemode == TUNE_MI_BAND && band != BAND_SW) tunemode = TUNE_MAN; BWreset = true; - BWset = 2; + BWset = BWsetAM; if (band == BAND_LW) freqold = frequency_LW; if (band == BAND_MW) freqold = frequency_MW; if (band == BAND_SW) freqold = frequency_SW; @@ -1651,7 +1655,7 @@ void SelectBand() { PTYold = ""; RTold = ""; BWreset = true; - BWset = 0; + BWset = BWsetFM; radio.clearRDS(fullsearchrds); freqold = frequency_AM; CheckBandForbiddenFM(); @@ -2695,6 +2699,8 @@ void doBW() { case 15: radio.setFMBandw(287); break; case 16: radio.setFMBandw(311); break; } + BWsetFM = BWset; + EEPROM.writeByte(EE_BYTE_BWSET_FM, BWsetFM); } else { if (BWset > 4) BWset = 1; @@ -2704,9 +2710,12 @@ void doBW() { case 3: radio.setAMBandw(6); break; case 4: radio.setAMBandw(8); break; } + BWsetAM = BWset; + EEPROM.writeByte(EE_BYTE_BWSET_AM, BWsetAM); } updateBW(); BWreset = true; + EEPROM.commit(); } void doTuneMode() { @@ -3215,6 +3224,8 @@ void DefaultSettings(byte userhardwaremodel) { EEPROM.writeByte(EE_BYTE_SORTAF, 1); EEPROM.writeByte(EE_BYTE_STATIONLISTID, 1); EEPROM.writeByte(EE_BYTE_FM_DEEMPHASIS, DEEMPHASIS_50); + EEPROM.writeByte(EE_BYTE_BWSET_FM, 0); + EEPROM.writeByte(EE_BYTE_BWSET_AM, 2); EEPROM.commit(); } diff --git a/src/constants.h b/src/constants.h index 0fb64fe..5b0efcc 100644 --- a/src/constants.h +++ b/src/constants.h @@ -106,7 +106,7 @@ // EEPROM index defines #define EE_PRESETS_CNT 30 -#define EE_CHECKBYTE_VALUE 32 // 0 ~ 255,add new entry, change for new value +#define EE_CHECKBYTE_VALUE 33 // 0 ~ 255,add new entry, change for new value #define EE_TOTAL_CNT 278 #define EE_UINT16_FREQUENCY_FM 0 @@ -142,6 +142,8 @@ #define EE_BYTE_EQSET 45 #define EE_BYTE_BAND 46 #define EE_BYTE_LOWLEVELSET 47 +#define EE_BYTE_BWSET_FM 48 +#define EE_BYTE_BWSET_AM 49 #define EE_BYTE_MEMORYPOS 51 #define EE_BYTE_REGION 52 #define EE_BYTE_RDS_UNDERSCORE 53