From a3440cbda5001888d0b85d1f1e586605a164cfb5 Mon Sep 17 00:00:00 2001 From: Sjef Verhoeven PE5PVB Date: Wed, 18 Oct 2023 16:16:21 +0200 Subject: [PATCH] Mod on auto freq. store --- TEF6686_ESP32.ino | 36 ++++++++++++------------------------ src/gui.cpp | 6 +++--- src/gui.h | 2 +- 3 files changed, 16 insertions(+), 28 deletions(-) diff --git a/TEF6686_ESP32.ino b/TEF6686_ESP32.ino index 4442172..51e901d 100644 --- a/TEF6686_ESP32.ino +++ b/TEF6686_ESP32.ino @@ -54,7 +54,7 @@ bool batterydetect = true; bool beepresetstart; bool beepresetstop; bool BWreset; -bool change2; +bool change; bool compressedold; bool direction; bool dropout; @@ -282,7 +282,6 @@ uint16_t SWMIBandPosold; uint16_t USN; uint16_t WAM; uint8_t buff_pos; -unsigned int change; unsigned int ConverterSet; unsigned int freq_scan; unsigned int frequency; @@ -711,6 +710,15 @@ void loop() { if (digitalRead(BANDBUTTON) == LOW ) BANDBUTTONPress(); if (millis() >= tuningtimer + 200) { + if (store) { + detachInterrupt(digitalPinToInterrupt(ROTARY_PIN_A)); + detachInterrupt(digitalPinToInterrupt(ROTARY_PIN_B)); + StoreFrequency(); + store = false; + attachInterrupt(digitalPinToInterrupt(ROTARY_PIN_A), read_encoder, CHANGE); + attachInterrupt(digitalPinToInterrupt(ROTARY_PIN_B), read_encoder, CHANGE); + } + rdsflagreset = false; Communication(); } @@ -860,9 +868,9 @@ void loop() { if (menu && menuopen && menupage == FMSETTINGS && menuoption == ITEM4) { if (band < BAND_GAP) radio.getStatus(SStatus, USN, WAM, OStatus, BW, MStatus, CN); else radio.getStatusAM(SStatus, USN, WAM, OStatus, BW, MStatus, CN); - if (millis() >= lowsignaltimer + 500 || change2) { + if (millis() >= lowsignaltimer + 500 || change) { lowsignaltimer = millis(); - change2 = false; + change = false; if (SStatus > SStatusold || SStatus < SStatusold) { if (SStatusold / 10 != SStatus / 10) tftReplace(1, String(SStatusold / 10), String(SStatus / 10), 140, 149, PrimaryColor, PrimaryColorSmooth, 48); tftReplace(1, "." + String(abs(SStatusold % 10)), "." + String(abs(SStatus % 10)), 160, 149, PrimaryColor, PrimaryColorSmooth, 28); @@ -918,24 +926,6 @@ void loop() { if (!screenmute && !afscreen) BWButtonPress(); } - if (store) change++; - - if (change > 200 && store) { - detachInterrupt(digitalPinToInterrupt(ROTARY_PIN_A)); - detachInterrupt(digitalPinToInterrupt(ROTARY_PIN_B)); - EEPROM.writeUInt(EE_UINT16_FREQUENCY_FM, frequency); - EEPROM.writeUInt(EE_UINT16_FREQUENCY_OIRT, frequency_OIRT); - EEPROM.writeUInt(EE_UINT16_FREQUENCY_AM, frequency_AM); - EEPROM.writeByte(EE_BYTE_BAND, band); - EEPROM.writeUInt(EE_UINT16_FREQUENCY_LW, frequency_LW); - EEPROM.writeUInt(EE_UINT16_FREQUENCY_MW, frequency_MW); - EEPROM.writeUInt(EE_UINT16_FREQUENCY_SW, frequency_SW); - EEPROM.commit(); - store = false; - attachInterrupt(digitalPinToInterrupt(ROTARY_PIN_A), read_encoder, CHANGE); - attachInterrupt(digitalPinToInterrupt(ROTARY_PIN_B), read_encoder, CHANGE); - } - if (screensaverset) { if (screensaver_IRQ) { @@ -2150,7 +2140,6 @@ void KeyUp() { } if (radio.rds.hasCT) tftPrint(1, rds_clock, 205, 163, BackgroundColor, BackgroundColor, 16); radio.clearRDS(fullsearchrds); - change = 0; ShowFreq(0); store = true; } else { @@ -2197,7 +2186,6 @@ void KeyDown() { } if (radio.rds.hasCT) tftPrint(1, rds_clock, 38, 109, BackgroundColor, BackgroundColor, 16); radio.clearRDS(fullsearchrds); - change = 0; ShowFreq(0); store = true; } else { diff --git a/src/gui.cpp b/src/gui.cpp index c55b27e..a381171 100644 --- a/src/gui.cpp +++ b/src/gui.cpp @@ -1175,7 +1175,7 @@ void MenuUp() { if (LevelOffset > 15) LevelOffset = -25; if (LevelOffset > 0) tftPrint(1, "+" + String(LevelOffset, DEC), 155, 118, PrimaryColor, PrimaryColorSmooth, 28); else tftPrint(1, String(LevelOffset, DEC), 155, 118, PrimaryColor, PrimaryColorSmooth, 28); radio.setOffset(LevelOffset); - change2 = true; + change = true; break; case ITEM5: @@ -1712,7 +1712,7 @@ void MenuDown() { LevelOffset--; if (LevelOffset < -25) LevelOffset = 15; if (LevelOffset > 0) tftPrint(1, "+" + String(LevelOffset, DEC), 155, 118, PrimaryColor, PrimaryColorSmooth, 28); else tftPrint(1, String(LevelOffset, DEC), 155, 118, PrimaryColor, PrimaryColorSmooth, 28); radio.setOffset(LevelOffset); - change2 = true; + change = true; break; case ITEM5: @@ -2203,7 +2203,7 @@ void DoMenu() { tftPrint(-1, "dBμV", 190, 165, ActiveColor, ActiveColorSmooth, 28); if (LevelOffset > 0) tftPrint(1, "+" + String(LevelOffset, DEC), 155, 118, PrimaryColor, PrimaryColorSmooth, 28); else tftPrint(1, String(LevelOffset, DEC), 155, 118, PrimaryColor, PrimaryColorSmooth, 28); SStatusold = 2000; - change2 = true; + change = true; break; case ITEM5: diff --git a/src/gui.h b/src/gui.h index 8661e39..de602a0 100644 --- a/src/gui.h +++ b/src/gui.h @@ -33,7 +33,7 @@ extern bool afpage; extern bool afscreen; extern bool artheadold; extern bool BWreset; -extern bool change2; +extern bool change; extern bool compressedold; extern bool dynamicPTYold; extern bool edgebeep;