Add 100K step for FM

This commit is contained in:
kevin
2023-07-08 13:56:16 +08:00
parent 0d0bc6e188
commit c30b7f603e
3 changed files with 71 additions and 19 deletions
+50 -8
View File
@@ -115,6 +115,7 @@ byte SNR;
byte SNRold;
byte specialstepOIRT;
byte stepsize;
byte fmminstepsize;
byte deepsleep;
byte StereoLevel;
byte subnetclient;
@@ -249,7 +250,7 @@ WiFiUDP Udp;
void setup() {
setupmode = true;
EEPROM.begin(261);
EEPROM.begin(262);
if (EEPROM.readByte(43) != 29) DefaultSettings();
frequency = EEPROM.readUInt(0);
@@ -302,6 +303,7 @@ void setup() {
colorinvert = EEPROM.readByte(258);
deepsleep = EEPROM.readByte(259);
CurrentTheme = EEPROM.readByte(260);
fmminstepsize = EEPROM.readByte(261);
LWLowEdgeSet = FREQ_LW_LOW_EDGE_MIN; // later will read from flash
LWHighEdgeSet = FREQ_LW_HIGH_EDGE_MAX; // later will read from flash
@@ -340,7 +342,8 @@ void setup() {
}
} else {
if (frequency % 10 != 0) {
Round50K(frequency);
if (fmminstepsize == 1) Round100K(freq);
else Round50K(freq);
}
}
break;
@@ -1264,7 +1267,8 @@ void ModeButtonPress() {
}
} else {
if (frequency % 10 != 0) {
Round50K(frequency);
if (fmminstepsize == 1) Round100K(freq);
else Round50K(freq);
EEPROM.writeUInt(0, frequency);
}
}
@@ -1308,6 +1312,7 @@ void ModeButtonPress() {
EEPROM.writeByte(258, colorinvert);
EEPROM.writeByte(259, deepsleep);
EEPROM.writeByte(260, CurrentTheme);
EEPROM.writeByte(261, fmminstepsize);
EEPROM.commit();
Serial.end();
if (wifi) remoteip = IPAddress (WiFi.localIP()[0], WiFi.localIP()[1], WiFi.localIP()[2], subnetclient);
@@ -1366,6 +1371,14 @@ void Round50K(unsigned int freq) {
}
}
void Round100K(unsigned int freq) {
if (freq % 10 < 5) {
frequency = (freq - freq % 10);
} else {
frequency = (freq - (freq % 10) + 10);
}
}
void Round5K(unsigned int freqAM) {
if (freqAM % 10 < 3) {
frequency_AM = (freqAM - freqAM % 10);
@@ -1385,10 +1398,12 @@ void RoundStep() {
if (frequency >= FREQ_FM_OIRT_START && frequency <= FREQ_FM_OIRT_END) {
Round30K(freq);
} else {
Round50K(freq);
if (fmminstepsize == 1) Round100K(freq);
else Round50K(freq);
}
} else {
Round50K(freq);
if (fmminstepsize == 1) Round100K(freq);
else Round50K(freq);
}
radio.SetFreq(frequency);
} else {
@@ -1780,6 +1795,13 @@ void ButtonPress() {
tft.setTextColor(TFT_WHITE);
if (deepsleep) tft.drawCentreString(myLanguage[language][75], 155, 110, GFXFF); else tft.drawCentreString(myLanguage[language][76], 155, 110, GFXFF);
break;
case 90:
tft.setTextColor(ActiveColor);
tft.drawCentreString(myLanguage[language][140], 155, 70, GFXFF);
tft.drawString("KHz", 170, 110, GFXFF);
tft.setTextColor(TFT_WHITE);
if (fmminstepsize) tft.drawRightString(String(FREQ_FM_STEP_100K * 10, DEC), 155, 110, GFXFF); else tft.drawRightString(String(FREQ_FM_STEP_50K * 10, DEC), 155, 110, GFXFF);
break;
}
break;
}
@@ -2177,6 +2199,13 @@ void KeyUp() {
tft.setTextColor(TFT_WHITE);
if (deepsleep) tft.drawCentreString(myLanguage[language][75], 155, 110, GFXFF); else tft.drawCentreString(myLanguage[language][76], 155, 110, GFXFF);
break;
case 90:
tft.setTextColor(TFT_BLACK);
if (fmminstepsize) tft.drawRightString(String(FREQ_FM_STEP_100K * 10, DEC), 155, 110, GFXFF); else tft.drawRightString(String(FREQ_FM_STEP_50K * 10, DEC), 155, 110, GFXFF);
if (fmminstepsize) fmminstepsize = 0; else fmminstepsize = 1;
tft.setTextColor(TFT_WHITE);
if (fmminstepsize) tft.drawRightString(String(FREQ_FM_STEP_100K * 10, DEC), 155, 110, GFXFF); else tft.drawRightString(String(FREQ_FM_STEP_50K * 10, DEC), 155, 110, GFXFF);
break;
}
break;
}
@@ -2568,6 +2597,13 @@ void KeyDown() {
tft.setTextColor(TFT_WHITE);
if (deepsleep) tft.drawCentreString(myLanguage[language][75], 155, 110, GFXFF); else tft.drawCentreString(myLanguage[language][76], 155, 110, GFXFF);
break;
case 90:
tft.setTextColor(TFT_BLACK);
if (fmminstepsize) tft.drawRightString(String(FREQ_FM_STEP_100K * 10, DEC), 155, 110, GFXFF); else tft.drawRightString(String(FREQ_FM_STEP_50K * 10, DEC), 155, 110, GFXFF);
if (fmminstepsize) fmminstepsize = 0; else fmminstepsize = 1;
tft.setTextColor(TFT_WHITE);
if (fmminstepsize) tft.drawRightString(String(FREQ_FM_STEP_100K * 10, DEC), 155, 110, GFXFF); else tft.drawRightString(String(FREQ_FM_STEP_50K * 10, DEC), 155, 110, GFXFF);
break;
}
break;
}
@@ -2982,7 +3018,7 @@ void BuildMenu() {
switch (menupage) {
case 1:
tft.drawRightString("dB", 305, 30, GFXFF);
tft.drawRightString("MHz", 305, 52, GFXFF);
tft.drawRightString("MHz", 305, 50, GFXFF);
tft.drawRightString("MHz", 305, 70, GFXFF);
tft.drawRightString("MHz", 305, 90, GFXFF);
tft.drawRightString("dB", 305, 110, GFXFF);
@@ -3065,12 +3101,15 @@ void BuildMenu() {
if (specialstepOIRT) tft.drawRightString(myLanguage[language][42], 305, 210, GFXFF); else tft.drawRightString(myLanguage[language][30], 305, 210, GFXFF);
break;
case 4:
tft.drawRightString("KHz", 305, 90, GFXFF);
tft.drawString(myLanguage[language][77], 14, 30, GFXFF);
tft.drawString(myLanguage[language][70], 14, 50, GFXFF);
tft.drawString(myLanguage[language][74], 14, 70, GFXFF);
tft.drawString(myLanguage[language][140], 14, 90, GFXFF);
tft.setTextColor(PrimaryColor);
tft.drawRightString(CurrentThemeString, 305, 30, GFXFF);
if (deepsleep) tft.drawRightString(myLanguage[language][75], 305, 70, GFXFF); else tft.drawRightString(myLanguage[language][76], 305, 70, GFXFF);
if (fmminstepsize) tft.drawRightString(String(FREQ_FM_STEP_100K * 10, DEC), 265, 90, GFXFF); else tft.drawRightString(String(FREQ_FM_STEP_50K * 10, DEC), 265, 90, GFXFF);
break;
}
analogWrite(SMETERPIN, 0);
@@ -4641,7 +4680,8 @@ void TuneUp() {
temp = FREQ_FM_STEP_50K;
}
} else {
temp = FREQ_FM_STEP_50K;
if (fmminstepsize == 1) { temp = FREQ_FM_STEP_100K; }
else { temp = FREQ_FM_STEP_50K; }
}
}
}
@@ -4720,7 +4760,8 @@ void TuneDown() {
temp = FREQ_FM_STEP_50K;
}
} else {
temp = FREQ_FM_STEP_50K;
if (fmminstepsize == 1) { temp = FREQ_FM_STEP_100K; }
else { temp = FREQ_FM_STEP_50K; }
}
}
}
@@ -5055,5 +5096,6 @@ void DefaultSettings() {
EEPROM.writeByte(258, 0);
EEPROM.writeByte(259, 0);
EEPROM.writeByte(260, 0);
EEPROM.writeByte(261, 0);
EEPROM.commit();
}