Update code to be compatible with board manager v3.2.0

This commit is contained in:
Sjef Verhoeven PE5PVB
2025-08-27 16:16:35 +02:00
parent 0694726b8b
commit 89cb362d75
9 changed files with 63 additions and 62 deletions

View File

@@ -7,6 +7,8 @@
#include <TimeLib.h> #include <TimeLib.h>
#include <TFT_eSPI.h> // 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 <TFT_eSPI.h> // 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 <Hash.h> // https://github.com/bbx10/Hash_tng/archive/refs/heads/master.zip #include <Hash.h> // https://github.com/bbx10/Hash_tng/archive/refs/heads/master.zip
#include <FS.h>
using fs::FS;
#include <WebServer.h> #include <WebServer.h>
#include <SPIFFS.h> #include <SPIFFS.h>
#include "src/NTPupdate.h" #include "src/NTPupdate.h"
@@ -475,7 +477,7 @@ WiFiClient RemoteClient;
WiFiUDP Udp; WiFiUDP Udp;
WebServer webserver(80); WebServer webserver(80);
hw_timer_t *timScreensaver = NULL; //hw_timer_t* timScreensaver = nullptr;
byte screensaver_IRQ = OFF; byte screensaver_IRQ = OFF;
void setup() { void setup() {
@@ -714,7 +716,6 @@ void setup() {
tft.fillScreen(BackgroundColor); tft.fillScreen(BackgroundColor);
SPIFFS.begin(); SPIFFS.begin();
if (!SPIFFS.exists("/logbook.csv")) handleCreateNewLogbook();
FrequencySprite.createSprite(200, 50); FrequencySprite.createSprite(200, 50);
FrequencySprite.setTextDatum(TR_DATUM); FrequencySprite.setTextDatum(TR_DATUM);
@@ -904,6 +905,7 @@ void setup() {
Wire.endTransmission(); Wire.endTransmission();
if (analogRead(BATTERY_PIN) < 200) batterydetect = false; if (analogRead(BATTERY_PIN) < 200) batterydetect = false;
if (!SPIFFS.exists("/logbook.csv")) handleCreateNewLogbook();
if (wifi) { if (wifi) {
tryWiFi(); tryWiFi();
@@ -957,8 +959,8 @@ void setup() {
if (!usesquelch) radio.setUnMute(); if (!usesquelch) radio.setUnMute();
if (screensaverset) { if (screensaverset) {
ScreensaverTimerInit(); // ScreensaverTimerInit();
ScreensaverTimerSet(screensaverOptions[screensaverset]); // ScreensaverTimerSet(screensaverOptions[screensaverset]);
} }
tottimer = millis(); tottimer = millis();
@@ -1338,7 +1340,7 @@ void loop() {
for (int i = 0; i < rotarycounteraccelerator; i++) KeyUp(); for (int i = 0; i < rotarycounteraccelerator; i++) KeyUp();
rotarycounter = 0; 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(); for (int i = 0; i < rotarycounteraccelerator; i++) KeyDown();
rotarycounter = 0; rotarycounter = 0;
} }
if (screensaverset && !BWtune && !menu && !screensavertriggered) ScreensaverTimerRestart(); // if (screensaverset && !BWtune && !menu && !screensavertriggered) ScreensaverTimerRestart();
} }
} }
@@ -1478,7 +1480,7 @@ void WakeToSleep(bool yes) {
MuteScreen(0); MuteScreen(0);
screensavertriggered = false; screensavertriggered = false;
screensaver_IRQ = OFF; screensaver_IRQ = OFF;
ScreensaverTimerReopen(); // ScreensaverTimerReopen();
break; break;
case LCD_BRIGHTNESS_1_PERCENT: case LCD_BRIGHTNESS_1_PERCENT:
case LCD_BRIGHTNESS_A_QUARTER: case LCD_BRIGHTNESS_A_QUARTER:
@@ -1486,53 +1488,59 @@ void WakeToSleep(bool yes) {
MuteScreen(0); MuteScreen(0);
screensavertriggered = false; screensavertriggered = false;
screensaver_IRQ = OFF; screensaver_IRQ = OFF;
ScreensaverTimerReopen(); // ScreensaverTimerReopen();
break; break;
} }
analogWrite(CONTRASTPIN, map(ContrastSet, 0, 100, 15, 255)); analogWrite(CONTRASTPIN, map(ContrastSet, 0, 100, 15, 255));
} }
} }
/*
void ScreensaverTimerInit() { void IRAM_ATTR ScreensaverInterrupt() {
timScreensaver = timerBegin(0, 80, true); screensaver_IRQ = ON; // ISR-safe flag setting
timerAttachInterrupt(timScreensaver, ScreensaverInterrupt, true);
}
void ScreensaverTimerSet(byte value) {
if (timScreensaver == NULL) {
ScreensaverTimerInit();
ScreensaverTimerSet(screensaverOptions[screensaverset]);
} }
if (value == OFF) { void ScreensaverTimerInit() {
if (screensaverset) timerStop(timScreensaver); if (timScreensaver) return;
} else {
timerStop(timScreensaver); // Timer 0, 80 prescaler for 1us ticks, counting up
timerAlarmWrite(timScreensaver, value * TIMER_SCREENSAVER_BASE, true); timScreensaver = timerBegin(0, 80, true);
timerStart(timScreensaver); 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); timerAlarmEnable(timScreensaver);
} }
} }
void ScreensaverTimerRestart() { void ScreensaverTimerRestart() {
if (timScreensaver == NULL) { if (timScreensaver == nullptr) {
ScreensaverTimerInit(); ScreensaverTimerInit();
ScreensaverTimerSet(screensaverOptions[screensaverset]); ScreensaverTimerSet(screensaverOptions[screensaverset]);
} }
timerRestart(timScreensaver); timerRestart(timScreensaver);
} }
void ScreensaverTimerReopen() { void ScreensaverTimerReopen() {
ScreensaverTimerSet(OFF); ScreensaverTimerSet(OFF);
ScreensaverTimerSet(screensaverOptions[screensaverset]); ScreensaverTimerSet(screensaverOptions[screensaverset]);
ScreensaverTimerRestart(); ScreensaverTimerRestart();
} }
*/
void ScreensaverInterrupt()
{
screensaver_IRQ = ON;
}
void CheckBandForbiddenFM () { void CheckBandForbiddenFM () {
switch (band) { switch (band) {
case BAND_FM: case BAND_FM:
@@ -1933,7 +1941,7 @@ void BANDBUTTONPress() {
BuildDisplay(); BuildDisplay();
freq_in = 0; freq_in = 0;
SelectBand(); SelectBand();
ScreensaverTimerReopen(); // ScreensaverTimerReopen();
} else { } else {
doBandToggle(); doBandToggle();
} }
@@ -2555,7 +2563,7 @@ void ModeButtonPress() {
BuildDisplay(); BuildDisplay();
freq_in = 0; freq_in = 0;
SelectBand(); SelectBand();
ScreensaverTimerReopen(); // ScreensaverTimerReopen();
} else if (afscreen) { } else if (afscreen) {
if (afpagenr == 1) afpagenr = 2; else if (afpagenr == 2 && afpage) afpagenr = 3; else afpagenr = 1; if (afpagenr == 1) afpagenr = 2; else if (afpagenr == 2 && afpage) afpagenr = 3; else afpagenr = 1;
BuildAFScreen(); BuildAFScreen();
@@ -2585,7 +2593,7 @@ void ModeButtonPress() {
BuildMenu(); BuildMenu();
freq_in = 0; freq_in = 0;
menu = true; menu = true;
ScreensaverTimerSet(OFF); // ScreensaverTimerSet(OFF);
} }
} }
} else { } else {
@@ -2609,8 +2617,8 @@ void ModeButtonPress() {
MWHighEdgeSet = mwstepsize == false ? FREQ_MW_HIGH_EDGE_MAX_9K : FREQ_MW_HIGH_EDGE_MAX_10K; MWHighEdgeSet = mwstepsize == false ? FREQ_MW_HIGH_EDGE_MAX_9K : FREQ_MW_HIGH_EDGE_MAX_10K;
doBandSelectionFM(); doBandSelectionFM();
doBandSelectionAM(); doBandSelectionAM();
ScreensaverTimerSet(screensaverOptions[screensaverset]); // ScreensaverTimerSet(screensaverOptions[screensaverset]);
if (screensaverset) ScreensaverTimerRestart(); // if (screensaverset) ScreensaverTimerRestart();
endMenu(); endMenu();
} else { } else {
if (submenu) { if (submenu) {
@@ -2822,7 +2830,7 @@ void ButtonPress() {
} }
} }
if (screensaverset) { if (screensaverset) {
ScreensaverTimerRestart(); // ScreensaverTimerRestart();
} }
} else { } else {
if (menu) DoMenu(); if (menu) DoMenu();
@@ -4945,8 +4953,8 @@ void endMenu() {
} }
void startFMDXScan() { void startFMDXScan() {
ScreensaverTimerSet(screensaverOptions[screensaverset]); // ScreensaverTimerSet(screensaverOptions[screensaverset]);
if (screensaverset) ScreensaverTimerRestart(); // if (screensaverset) ScreensaverTimerRestart();
initdxscan = true; initdxscan = true;
scanholdflag = false; scanholdflag = false;
autologged = false; autologged = false;
@@ -5218,7 +5226,7 @@ void doBandToggle() {
startFMDXScan(); startFMDXScan();
return; return;
} }
ScreensaverTimerRestart(); // ScreensaverTimerRestart();
} }
void StoreMemoryPos(uint8_t _pos) { void StoreMemoryPos(uint8_t _pos) {
@@ -5425,7 +5433,7 @@ void NumpadProcess(int num) {
PSSprite.unloadFont(); PSSprite.unloadFont();
if (language == LANGUAGE_CHS) PSSprite.loadFont(FONT16_CHS); else PSSprite.loadFont(FONT16); if (language == LANGUAGE_CHS) PSSprite.loadFont(FONT16_CHS); else PSSprite.loadFont(FONT16);
BuildMenu(); BuildMenu();
ScreensaverTimerSet(OFF); // ScreensaverTimerSet(OFF);
} else if (num == 13) { } else if (num == 13) {
if (freq_in != 0) { if (freq_in != 0) {
TuneFreq(freq_in); TuneFreq(freq_in);

View File

@@ -29,6 +29,8 @@
#include <ESP8266WebServer.h> #include <ESP8266WebServer.h>
#else #else
#include <WiFi.h> #include <WiFi.h>
#include <FS.h>
using fs::FS;
#include <WebServer.h> #include <WebServer.h>
#endif #endif
#include <DNSServer.h> #include <DNSServer.h>

View File

@@ -119,7 +119,7 @@ void Communication() {
if (afscreen || advancedRDS) { if (afscreen || advancedRDS) {
BuildDisplay(); BuildDisplay();
SelectBand(); SelectBand();
ScreensaverTimerReopen(); // ScreensaverTimerReopen();
} }
if (tempfreq >= FREQ_LW_LOW_EDGE_MIN && tempfreq <= FREQ_LW_HIGH_EDGE_MAX) { if (tempfreq >= FREQ_LW_LOW_EDGE_MIN && tempfreq <= FREQ_LW_HIGH_EDGE_MAX) {

View File

@@ -138,7 +138,7 @@ extern void doBW();
extern void BuildDisplay(); extern void BuildDisplay();
extern void BuildAdvancedRDS(); extern void BuildAdvancedRDS();
extern void ModeButtonPress(); extern void ModeButtonPress();
extern void ScreensaverTimerReopen(); //extern void ScreensaverTimerReopen();
extern void Seek(bool mode); extern void Seek(bool mode);
extern void doStereoToggle(); extern void doStereoToggle();
extern void MuteScreen(bool setting); extern void MuteScreen(bool setting);

View File

@@ -1,7 +1,7 @@
#pragma GCC diagnostic push #pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-variable" #pragma GCC diagnostic ignored "-Wunused-variable"
#define VERSION "v2.20" #define VERSION "v2.20.1"
#define ON 1 #define ON 1
#define OFF 0 #define OFF 0

View File

@@ -186,17 +186,6 @@ void handleDownloadCSV() {
} }
bool handleCreateNewLogbook() { 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 // Check if the file "logbook.csv" already exists
if (SPIFFS.exists("/logbook.csv")) { if (SPIFFS.exists("/logbook.csv")) {
// If it exists, delete the file // If it exists, delete the file

View File

@@ -4,6 +4,8 @@
#include <Arduino.h> #include <Arduino.h>
#include <TFT_eSPI.h> #include <TFT_eSPI.h>
#include <WiFi.h> #include <WiFi.h>
#include <FS.h>
using fs::FS;
#include <WebServer.h> #include <WebServer.h>
#include <SPIFFS.h> #include <SPIFFS.h>
#include "TEF6686.h" #include "TEF6686.h"

View File

@@ -198,7 +198,7 @@ void doTouchEvent(uint16_t x, uint16_t y) {
leave = true; leave = true;
BuildDisplay(); BuildDisplay();
SelectBand(); SelectBand();
ScreensaverTimerReopen(); // Switch to normal radio view // ScreensaverTimerReopen(); // Switch to normal radio view
return; return;
} else if (x > 0 && x < 320 && y > 180 && y < 240) { } else if (x > 0 && x < 320 && y > 180 && y < 240) {
BuildAFScreen(); BuildAFScreen();

View File

@@ -35,7 +35,7 @@ extern int menuoption;
void doTouchEvent(uint16_t x, uint16_t y); void doTouchEvent(uint16_t x, uint16_t y);
extern void ScreensaverTimerReopen(); //extern void ScreensaverTimerReopen();
extern void BuildDisplay(); extern void BuildDisplay();
extern void BuildBWSelector(); extern void BuildBWSelector();
extern void SelectBand(); extern void SelectBand();