From 89cb362d7559e145cb7229a04301230d855153c2 Mon Sep 17 00:00:00 2001 From: Sjef Verhoeven PE5PVB Date: Wed, 27 Aug 2025 16:16:35 +0200 Subject: [PATCH] Update code to be compatible with board manager v3.2.0 --- TEF6686_ESP32.ino | 100 +++++++++++++++++++++++++--------------------- src/WiFiConnect.h | 2 + src/comms.cpp | 2 +- src/comms.h | 2 +- src/constants.h | 2 +- src/logbook.cpp | 11 ----- src/logbook.h | 2 + src/touch.cpp | 2 +- src/touch.h | 2 +- 9 files changed, 63 insertions(+), 62 deletions(-) diff --git a/TEF6686_ESP32.ino b/TEF6686_ESP32.ino index 8af9368..81b75f3 100644 --- a/TEF6686_ESP32.ino +++ b/TEF6686_ESP32.ino @@ -7,6 +7,8 @@ #include #include // https://github.com/ohmytime/TFT_eSPI_DynamicSpeed/archive/refs/heads/master.zip (please then edit the User_Setup.h as described in the Wiki) #include // https://github.com/bbx10/Hash_tng/archive/refs/heads/master.zip +#include +using fs::FS; #include #include #include "src/NTPupdate.h" @@ -475,7 +477,7 @@ WiFiClient RemoteClient; WiFiUDP Udp; WebServer webserver(80); -hw_timer_t *timScreensaver = NULL; +//hw_timer_t* timScreensaver = nullptr; byte screensaver_IRQ = OFF; void setup() { @@ -714,7 +716,6 @@ void setup() { tft.fillScreen(BackgroundColor); SPIFFS.begin(); - if (!SPIFFS.exists("/logbook.csv")) handleCreateNewLogbook(); FrequencySprite.createSprite(200, 50); FrequencySprite.setTextDatum(TR_DATUM); @@ -904,6 +905,7 @@ void setup() { Wire.endTransmission(); if (analogRead(BATTERY_PIN) < 200) batterydetect = false; + if (!SPIFFS.exists("/logbook.csv")) handleCreateNewLogbook(); if (wifi) { tryWiFi(); @@ -957,8 +959,8 @@ void setup() { if (!usesquelch) radio.setUnMute(); if (screensaverset) { - ScreensaverTimerInit(); - ScreensaverTimerSet(screensaverOptions[screensaverset]); + // ScreensaverTimerInit(); + // ScreensaverTimerSet(screensaverOptions[screensaverset]); } tottimer = millis(); @@ -1338,7 +1340,7 @@ void loop() { for (int i = 0; i < rotarycounteraccelerator; i++) KeyUp(); rotarycounter = 0; } - if (screensaverset && !BWtune && !menu && !screensavertriggered) ScreensaverTimerRestart(); + // if (screensaverset && !BWtune && !menu && !screensavertriggered) ScreensaverTimerRestart(); } } @@ -1357,7 +1359,7 @@ void loop() { for (int i = 0; i < rotarycounteraccelerator; i++) KeyDown(); rotarycounter = 0; } - if (screensaverset && !BWtune && !menu && !screensavertriggered) ScreensaverTimerRestart(); + // if (screensaverset && !BWtune && !menu && !screensavertriggered) ScreensaverTimerRestart(); } } @@ -1478,7 +1480,7 @@ void WakeToSleep(bool yes) { MuteScreen(0); screensavertriggered = false; screensaver_IRQ = OFF; - ScreensaverTimerReopen(); + // ScreensaverTimerReopen(); break; case LCD_BRIGHTNESS_1_PERCENT: case LCD_BRIGHTNESS_A_QUARTER: @@ -1486,53 +1488,59 @@ void WakeToSleep(bool yes) { MuteScreen(0); screensavertriggered = false; screensaver_IRQ = OFF; - ScreensaverTimerReopen(); + // ScreensaverTimerReopen(); break; } analogWrite(CONTRASTPIN, map(ContrastSet, 0, 100, 15, 255)); } } - -void ScreensaverTimerInit() { - timScreensaver = timerBegin(0, 80, true); - timerAttachInterrupt(timScreensaver, ScreensaverInterrupt, true); -} - -void ScreensaverTimerSet(byte value) { - if (timScreensaver == NULL) { - ScreensaverTimerInit(); - ScreensaverTimerSet(screensaverOptions[screensaverset]); +/* + void IRAM_ATTR ScreensaverInterrupt() { + screensaver_IRQ = ON; // ISR-safe flag setting } - if (value == OFF) { - if (screensaverset) timerStop(timScreensaver); - } else { - timerStop(timScreensaver); - timerAlarmWrite(timScreensaver, value * TIMER_SCREENSAVER_BASE, true); - timerStart(timScreensaver); + void ScreensaverTimerInit() { + if (timScreensaver) return; + + // Timer 0, 80 prescaler for 1us ticks, counting up + timScreensaver = timerBegin(0, 80, true); + if (!timScreensaver) { + Serial.println("Failed to initialize timer"); + return; + } + + timerAttachInterrupt(timScreensaver, &ScreensaverInterrupt, true); + } + + void ScreensaverTimerSet(byte value) { + if (timScreensaver == nullptr) { + ScreensaverTimerInit(); + if (!timScreensaver) return; + } + + timerStop(timScreensaver); + + if (value != OFF) { + uint64_t ticks = value * TIMER_SCREENSAVER_BASE * 1000; // ms to us + timerAlarmWrite(timScreensaver, ticks, false); timerAlarmEnable(timScreensaver); } -} + } -void ScreensaverTimerRestart() { - if (timScreensaver == NULL) { + void ScreensaverTimerRestart() { + if (timScreensaver == nullptr) { ScreensaverTimerInit(); ScreensaverTimerSet(screensaverOptions[screensaverset]); } timerRestart(timScreensaver); -} + } -void ScreensaverTimerReopen() { + void ScreensaverTimerReopen() { ScreensaverTimerSet(OFF); ScreensaverTimerSet(screensaverOptions[screensaverset]); ScreensaverTimerRestart(); -} - -void ScreensaverInterrupt() -{ - screensaver_IRQ = ON; -} - + } +*/ void CheckBandForbiddenFM () { switch (band) { case BAND_FM: @@ -1933,7 +1941,7 @@ void BANDBUTTONPress() { BuildDisplay(); freq_in = 0; SelectBand(); - ScreensaverTimerReopen(); + // ScreensaverTimerReopen(); } else { doBandToggle(); } @@ -2555,7 +2563,7 @@ void ModeButtonPress() { BuildDisplay(); freq_in = 0; SelectBand(); - ScreensaverTimerReopen(); + // ScreensaverTimerReopen(); } else if (afscreen) { if (afpagenr == 1) afpagenr = 2; else if (afpagenr == 2 && afpage) afpagenr = 3; else afpagenr = 1; BuildAFScreen(); @@ -2585,7 +2593,7 @@ void ModeButtonPress() { BuildMenu(); freq_in = 0; menu = true; - ScreensaverTimerSet(OFF); + // ScreensaverTimerSet(OFF); } } } else { @@ -2609,8 +2617,8 @@ void ModeButtonPress() { MWHighEdgeSet = mwstepsize == false ? FREQ_MW_HIGH_EDGE_MAX_9K : FREQ_MW_HIGH_EDGE_MAX_10K; doBandSelectionFM(); doBandSelectionAM(); - ScreensaverTimerSet(screensaverOptions[screensaverset]); - if (screensaverset) ScreensaverTimerRestart(); + // ScreensaverTimerSet(screensaverOptions[screensaverset]); + // if (screensaverset) ScreensaverTimerRestart(); endMenu(); } else { if (submenu) { @@ -2822,7 +2830,7 @@ void ButtonPress() { } } if (screensaverset) { - ScreensaverTimerRestart(); + // ScreensaverTimerRestart(); } } else { if (menu) DoMenu(); @@ -4945,8 +4953,8 @@ void endMenu() { } void startFMDXScan() { - ScreensaverTimerSet(screensaverOptions[screensaverset]); - if (screensaverset) ScreensaverTimerRestart(); + // ScreensaverTimerSet(screensaverOptions[screensaverset]); + // if (screensaverset) ScreensaverTimerRestart(); initdxscan = true; scanholdflag = false; autologged = false; @@ -5218,7 +5226,7 @@ void doBandToggle() { startFMDXScan(); return; } - ScreensaverTimerRestart(); + // ScreensaverTimerRestart(); } void StoreMemoryPos(uint8_t _pos) { @@ -5425,7 +5433,7 @@ void NumpadProcess(int num) { PSSprite.unloadFont(); if (language == LANGUAGE_CHS) PSSprite.loadFont(FONT16_CHS); else PSSprite.loadFont(FONT16); BuildMenu(); - ScreensaverTimerSet(OFF); + // ScreensaverTimerSet(OFF); } else if (num == 13) { if (freq_in != 0) { TuneFreq(freq_in); diff --git a/src/WiFiConnect.h b/src/WiFiConnect.h index 719ebed..ba0d3be 100644 --- a/src/WiFiConnect.h +++ b/src/WiFiConnect.h @@ -29,6 +29,8 @@ #include #else #include +#include +using fs::FS; #include #endif #include diff --git a/src/comms.cpp b/src/comms.cpp index 2d0bdaf..57b861e 100644 --- a/src/comms.cpp +++ b/src/comms.cpp @@ -119,7 +119,7 @@ void Communication() { if (afscreen || advancedRDS) { BuildDisplay(); SelectBand(); - ScreensaverTimerReopen(); +// ScreensaverTimerReopen(); } if (tempfreq >= FREQ_LW_LOW_EDGE_MIN && tempfreq <= FREQ_LW_HIGH_EDGE_MAX) { diff --git a/src/comms.h b/src/comms.h index d12f0bd..7817c6f 100644 --- a/src/comms.h +++ b/src/comms.h @@ -138,7 +138,7 @@ extern void doBW(); extern void BuildDisplay(); extern void BuildAdvancedRDS(); extern void ModeButtonPress(); -extern void ScreensaverTimerReopen(); +//extern void ScreensaverTimerReopen(); extern void Seek(bool mode); extern void doStereoToggle(); extern void MuteScreen(bool setting); diff --git a/src/constants.h b/src/constants.h index 96527e9..baf4b6a 100644 --- a/src/constants.h +++ b/src/constants.h @@ -1,7 +1,7 @@ #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wunused-variable" -#define VERSION "v2.20" +#define VERSION "v2.20.1" #define ON 1 #define OFF 0 diff --git a/src/logbook.cpp b/src/logbook.cpp index 8b1695f..56da539 100644 --- a/src/logbook.cpp +++ b/src/logbook.cpp @@ -186,17 +186,6 @@ void handleDownloadCSV() { } bool handleCreateNewLogbook() { - // Quick check if SPIFFS is mounted and accessible - if (!SPIFFS.exists("/")) { // "/" should always exist if mounted - // SPIFFS not accessible, try to format and remount - if (!SPIFFS.format()) { - return false; // format failed - } - if (!SPIFFS.begin()) { - return false; // remount failed - } - } - // Check if the file "logbook.csv" already exists if (SPIFFS.exists("/logbook.csv")) { // If it exists, delete the file diff --git a/src/logbook.h b/src/logbook.h index 82b35be..6b0934b 100644 --- a/src/logbook.h +++ b/src/logbook.h @@ -4,6 +4,8 @@ #include #include #include +#include +using fs::FS; #include #include #include "TEF6686.h" diff --git a/src/touch.cpp b/src/touch.cpp index ed004b9..f13cf1c 100644 --- a/src/touch.cpp +++ b/src/touch.cpp @@ -198,7 +198,7 @@ void doTouchEvent(uint16_t x, uint16_t y) { leave = true; BuildDisplay(); SelectBand(); - ScreensaverTimerReopen(); // Switch to normal radio view +// ScreensaverTimerReopen(); // Switch to normal radio view return; } else if (x > 0 && x < 320 && y > 180 && y < 240) { BuildAFScreen(); diff --git a/src/touch.h b/src/touch.h index 17c4dfd..97ff4bb 100644 --- a/src/touch.h +++ b/src/touch.h @@ -35,7 +35,7 @@ extern int menuoption; void doTouchEvent(uint16_t x, uint16_t y); -extern void ScreensaverTimerReopen(); +//extern void ScreensaverTimerReopen(); extern void BuildDisplay(); extern void BuildBWSelector(); extern void SelectBand();