From d8e4ccfd8a21979a88c4f589f3830ba7677b7a90 Mon Sep 17 00:00:00 2001 From: Sjef Verhoeven PE5PVB Date: Sun, 31 Mar 2024 14:36:04 +0200 Subject: [PATCH] Updates in memory channels - Skipped channels will be skipped in memory tuning mode - You can now set a memory channel to skip bij entering edit mode and pressing the band button --- TEF6686_ESP32.ino | 102 ++++++++++++++++++++++++++++++---------------- 1 file changed, 66 insertions(+), 36 deletions(-) diff --git a/TEF6686_ESP32.ino b/TEF6686_ESP32.ino index 022779f..acdeea7 100644 --- a/TEF6686_ESP32.ino +++ b/TEF6686_ESP32.ino @@ -1342,51 +1342,63 @@ void ToggleBand(byte nowBand) { } void BANDBUTTONPress() { - if (!usesquelch) radio.setUnMute(); - if (afscreen) { - BuildAdvancedRDS(); + if (memorystore) { + EEPROM.writeUInt((memorypos * 4) + EE_PRESETS_START, EE_PRESETS_FREQUENCY); + EEPROM.commit(); + memory[memorypos] = EE_PRESETS_FREQUENCY; + memorystore = false; + ShowTuneMode(); + if (memoryposstatus == MEM_DARK || memoryposstatus == MEM_EXIST) { + memoryposstatus = MEM_NORMAL; + ShowMemoryPos(); + } } else { - unsigned long counterold = millis(); - unsigned long counter = millis(); - if (!menu) { - while (digitalRead(BANDBUTTON) == LOW && counter - counterold <= 1000) counter = millis(); + if (!usesquelch) radio.setUnMute(); + if (afscreen) { + BuildAdvancedRDS(); + } else { + unsigned long counterold = millis(); + unsigned long counter = millis(); + if (!menu) { + while (digitalRead(BANDBUTTON) == LOW && counter - counterold <= 1000) counter = millis(); - if (counter - counterold < 1000) { - if (screensavertriggered) { - WakeToSleep(REVERSE); - return; - } - - if (advancedRDS) { - BuildDisplay(); - ScreensaverTimerReopen(); - } else { - if (tunemode != TUNE_MEM) { - ToggleBand(band); - StoreFrequency(); - SelectBand(); - if (XDRGTKUSB || XDRGTKTCP) { - if (band == BAND_FM) DataPrint("M0\nT" + String(frequency * 10)); else if (band == BAND_OIRT) DataPrint("M0\nT" + String(frequency_OIRT * 10)); else DataPrint("M1\nT" + String(frequency_AM)); - } + if (counter - counterold < 1000) { + if (screensavertriggered) { + WakeToSleep(REVERSE); + return; } - ScreensaverTimerRestart(); - } - } else { - if (screensavertriggered) { - WakeToSleep(REVERSE); - return; - } - if (band < BAND_GAP) { - if (advancedRDS && !seek) BuildAFScreen(); else BuildAdvancedRDS(); + if (advancedRDS) { + BuildDisplay(); + ScreensaverTimerReopen(); + } else { + if (tunemode != TUNE_MEM) { + ToggleBand(band); + StoreFrequency(); + SelectBand(); + if (XDRGTKUSB || XDRGTKTCP) { + if (band == BAND_FM) DataPrint("M0\nT" + String(frequency * 10)); else if (band == BAND_OIRT) DataPrint("M0\nT" + String(frequency_OIRT * 10)); else DataPrint("M1\nT" + String(frequency_AM)); + } + } + ScreensaverTimerRestart(); + } } else { - WakeToSleep(true); + if (screensavertriggered) { + WakeToSleep(REVERSE); + return; + } + + if (band < BAND_GAP) { + if (advancedRDS && !seek) BuildAFScreen(); else BuildAdvancedRDS(); + } else { + WakeToSleep(true); + } } } } - while (digitalRead(BANDBUTTON) == LOW) delay(50); - delay(100); } + while (digitalRead(BANDBUTTON) == LOW) delay(50); + delay(100); } void StoreFrequency() { @@ -2357,6 +2369,15 @@ void KeyUp() { case TUNE_MEM: memorypos++; if (memorypos > EE_PRESETS_CNT - 1) memorypos = 0; + if (!memorystore) { + while (IsStationEmpty()) { + memorypos++; + if (memorypos > EE_PRESETS_CNT - 1) { + memorypos = 0; + break; + } + } + } if (!memorystore) { DoMemoryPosTune(); } else { @@ -2409,6 +2430,15 @@ void KeyDown() { case TUNE_MEM: memorypos--; if (memorypos > EE_PRESETS_CNT - 1) memorypos = EE_PRESETS_CNT - 1; + if (!memorystore) { + while (IsStationEmpty()) { + memorypos--; + if (memorypos > EE_PRESETS_CNT - 1) { + memorypos = EE_PRESETS_CNT - 1; + break; + } + } + } if (!memorystore) { DoMemoryPosTune(); } else {