Add 100K step for FM
This commit is contained in:
+50
-8
@@ -115,6 +115,7 @@ byte SNR;
|
|||||||
byte SNRold;
|
byte SNRold;
|
||||||
byte specialstepOIRT;
|
byte specialstepOIRT;
|
||||||
byte stepsize;
|
byte stepsize;
|
||||||
|
byte fmminstepsize;
|
||||||
byte deepsleep;
|
byte deepsleep;
|
||||||
byte StereoLevel;
|
byte StereoLevel;
|
||||||
byte subnetclient;
|
byte subnetclient;
|
||||||
@@ -249,7 +250,7 @@ WiFiUDP Udp;
|
|||||||
|
|
||||||
void setup() {
|
void setup() {
|
||||||
setupmode = true;
|
setupmode = true;
|
||||||
EEPROM.begin(261);
|
EEPROM.begin(262);
|
||||||
if (EEPROM.readByte(43) != 29) DefaultSettings();
|
if (EEPROM.readByte(43) != 29) DefaultSettings();
|
||||||
|
|
||||||
frequency = EEPROM.readUInt(0);
|
frequency = EEPROM.readUInt(0);
|
||||||
@@ -302,6 +303,7 @@ void setup() {
|
|||||||
colorinvert = EEPROM.readByte(258);
|
colorinvert = EEPROM.readByte(258);
|
||||||
deepsleep = EEPROM.readByte(259);
|
deepsleep = EEPROM.readByte(259);
|
||||||
CurrentTheme = EEPROM.readByte(260);
|
CurrentTheme = EEPROM.readByte(260);
|
||||||
|
fmminstepsize = EEPROM.readByte(261);
|
||||||
|
|
||||||
LWLowEdgeSet = FREQ_LW_LOW_EDGE_MIN; // later will read from flash
|
LWLowEdgeSet = FREQ_LW_LOW_EDGE_MIN; // later will read from flash
|
||||||
LWHighEdgeSet = FREQ_LW_HIGH_EDGE_MAX; // later will read from flash
|
LWHighEdgeSet = FREQ_LW_HIGH_EDGE_MAX; // later will read from flash
|
||||||
@@ -340,7 +342,8 @@ void setup() {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (frequency % 10 != 0) {
|
if (frequency % 10 != 0) {
|
||||||
Round50K(frequency);
|
if (fmminstepsize == 1) Round100K(freq);
|
||||||
|
else Round50K(freq);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -1264,7 +1267,8 @@ void ModeButtonPress() {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (frequency % 10 != 0) {
|
if (frequency % 10 != 0) {
|
||||||
Round50K(frequency);
|
if (fmminstepsize == 1) Round100K(freq);
|
||||||
|
else Round50K(freq);
|
||||||
EEPROM.writeUInt(0, frequency);
|
EEPROM.writeUInt(0, frequency);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1308,6 +1312,7 @@ void ModeButtonPress() {
|
|||||||
EEPROM.writeByte(258, colorinvert);
|
EEPROM.writeByte(258, colorinvert);
|
||||||
EEPROM.writeByte(259, deepsleep);
|
EEPROM.writeByte(259, deepsleep);
|
||||||
EEPROM.writeByte(260, CurrentTheme);
|
EEPROM.writeByte(260, CurrentTheme);
|
||||||
|
EEPROM.writeByte(261, fmminstepsize);
|
||||||
EEPROM.commit();
|
EEPROM.commit();
|
||||||
Serial.end();
|
Serial.end();
|
||||||
if (wifi) remoteip = IPAddress (WiFi.localIP()[0], WiFi.localIP()[1], WiFi.localIP()[2], subnetclient);
|
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) {
|
void Round5K(unsigned int freqAM) {
|
||||||
if (freqAM % 10 < 3) {
|
if (freqAM % 10 < 3) {
|
||||||
frequency_AM = (freqAM - freqAM % 10);
|
frequency_AM = (freqAM - freqAM % 10);
|
||||||
@@ -1385,10 +1398,12 @@ void RoundStep() {
|
|||||||
if (frequency >= FREQ_FM_OIRT_START && frequency <= FREQ_FM_OIRT_END) {
|
if (frequency >= FREQ_FM_OIRT_START && frequency <= FREQ_FM_OIRT_END) {
|
||||||
Round30K(freq);
|
Round30K(freq);
|
||||||
} else {
|
} else {
|
||||||
Round50K(freq);
|
if (fmminstepsize == 1) Round100K(freq);
|
||||||
|
else Round50K(freq);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
Round50K(freq);
|
if (fmminstepsize == 1) Round100K(freq);
|
||||||
|
else Round50K(freq);
|
||||||
}
|
}
|
||||||
radio.SetFreq(frequency);
|
radio.SetFreq(frequency);
|
||||||
} else {
|
} else {
|
||||||
@@ -1780,6 +1795,13 @@ void ButtonPress() {
|
|||||||
tft.setTextColor(TFT_WHITE);
|
tft.setTextColor(TFT_WHITE);
|
||||||
if (deepsleep) tft.drawCentreString(myLanguage[language][75], 155, 110, GFXFF); else tft.drawCentreString(myLanguage[language][76], 155, 110, GFXFF);
|
if (deepsleep) tft.drawCentreString(myLanguage[language][75], 155, 110, GFXFF); else tft.drawCentreString(myLanguage[language][76], 155, 110, GFXFF);
|
||||||
break;
|
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;
|
break;
|
||||||
}
|
}
|
||||||
@@ -2177,6 +2199,13 @@ void KeyUp() {
|
|||||||
tft.setTextColor(TFT_WHITE);
|
tft.setTextColor(TFT_WHITE);
|
||||||
if (deepsleep) tft.drawCentreString(myLanguage[language][75], 155, 110, GFXFF); else tft.drawCentreString(myLanguage[language][76], 155, 110, GFXFF);
|
if (deepsleep) tft.drawCentreString(myLanguage[language][75], 155, 110, GFXFF); else tft.drawCentreString(myLanguage[language][76], 155, 110, GFXFF);
|
||||||
break;
|
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;
|
break;
|
||||||
}
|
}
|
||||||
@@ -2568,6 +2597,13 @@ void KeyDown() {
|
|||||||
tft.setTextColor(TFT_WHITE);
|
tft.setTextColor(TFT_WHITE);
|
||||||
if (deepsleep) tft.drawCentreString(myLanguage[language][75], 155, 110, GFXFF); else tft.drawCentreString(myLanguage[language][76], 155, 110, GFXFF);
|
if (deepsleep) tft.drawCentreString(myLanguage[language][75], 155, 110, GFXFF); else tft.drawCentreString(myLanguage[language][76], 155, 110, GFXFF);
|
||||||
break;
|
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;
|
break;
|
||||||
}
|
}
|
||||||
@@ -2982,7 +3018,7 @@ void BuildMenu() {
|
|||||||
switch (menupage) {
|
switch (menupage) {
|
||||||
case 1:
|
case 1:
|
||||||
tft.drawRightString("dB", 305, 30, GFXFF);
|
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, 70, GFXFF);
|
||||||
tft.drawRightString("MHz", 305, 90, GFXFF);
|
tft.drawRightString("MHz", 305, 90, GFXFF);
|
||||||
tft.drawRightString("dB", 305, 110, 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);
|
if (specialstepOIRT) tft.drawRightString(myLanguage[language][42], 305, 210, GFXFF); else tft.drawRightString(myLanguage[language][30], 305, 210, GFXFF);
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
|
tft.drawRightString("KHz", 305, 90, GFXFF);
|
||||||
tft.drawString(myLanguage[language][77], 14, 30, GFXFF);
|
tft.drawString(myLanguage[language][77], 14, 30, GFXFF);
|
||||||
tft.drawString(myLanguage[language][70], 14, 50, GFXFF);
|
tft.drawString(myLanguage[language][70], 14, 50, GFXFF);
|
||||||
tft.drawString(myLanguage[language][74], 14, 70, GFXFF);
|
tft.drawString(myLanguage[language][74], 14, 70, GFXFF);
|
||||||
|
tft.drawString(myLanguage[language][140], 14, 90, GFXFF);
|
||||||
tft.setTextColor(PrimaryColor);
|
tft.setTextColor(PrimaryColor);
|
||||||
tft.drawRightString(CurrentThemeString, 305, 30, GFXFF);
|
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 (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;
|
break;
|
||||||
}
|
}
|
||||||
analogWrite(SMETERPIN, 0);
|
analogWrite(SMETERPIN, 0);
|
||||||
@@ -4641,7 +4680,8 @@ void TuneUp() {
|
|||||||
temp = FREQ_FM_STEP_50K;
|
temp = FREQ_FM_STEP_50K;
|
||||||
}
|
}
|
||||||
} else {
|
} 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;
|
temp = FREQ_FM_STEP_50K;
|
||||||
}
|
}
|
||||||
} else {
|
} 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(258, 0);
|
||||||
EEPROM.writeByte(259, 0);
|
EEPROM.writeByte(259, 0);
|
||||||
EEPROM.writeByte(260, 0);
|
EEPROM.writeByte(260, 0);
|
||||||
|
EEPROM.writeByte(261, 0);
|
||||||
EEPROM.commit();
|
EEPROM.commit();
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-1
@@ -12,8 +12,9 @@
|
|||||||
#define FREQ_MW_STEP_9K 9
|
#define FREQ_MW_STEP_9K 9
|
||||||
#define FREQ_MW_STEP_10K 10
|
#define FREQ_MW_STEP_10K 10
|
||||||
#define FREQ_SW_STEP_5K 5
|
#define FREQ_SW_STEP_5K 5
|
||||||
#define FREQ_FM_STEP_50K 5
|
|
||||||
#define FREQ_FM_STEP_30K 3
|
#define FREQ_FM_STEP_30K 3
|
||||||
|
#define FREQ_FM_STEP_50K 5
|
||||||
|
#define FREQ_FM_STEP_100K 10
|
||||||
|
|
||||||
#define FREQ_LW_LOW_EDGE_MIN 144
|
#define FREQ_LW_LOW_EDGE_MIN 144
|
||||||
#define FREQ_LW_HIGH_EDGE_MAX 519
|
#define FREQ_LW_HIGH_EDGE_MAX 519
|
||||||
|
|||||||
+19
-10
@@ -1,6 +1,6 @@
|
|||||||
// [number of languages][number of texts][max. length of text]
|
// [number of languages][number of texts][max. length of text]
|
||||||
|
|
||||||
static const char myLanguage[9][140][85] = {
|
static const char myLanguage[9][141][85] = {
|
||||||
{ "English", // English
|
{ "English", // English
|
||||||
"Rotary direction changed", // 1
|
"Rotary direction changed", // 1
|
||||||
"Please release button", // 2
|
"Please release button", // 2
|
||||||
@@ -140,7 +140,8 @@ static const char myLanguage[9][140][85] = {
|
|||||||
"Georgian", // 136
|
"Georgian", // 136
|
||||||
"Bulgarian", // 137
|
"Bulgarian", // 137
|
||||||
"Armenian", // 138
|
"Armenian", // 138
|
||||||
"Arabic" // 139
|
"Arabic", // 139
|
||||||
|
"FM min stepsize" // 140
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Nederlands", // Dutch
|
{ "Nederlands", // Dutch
|
||||||
@@ -282,7 +283,8 @@ static const char myLanguage[9][140][85] = {
|
|||||||
"Georgisch", // 136
|
"Georgisch", // 136
|
||||||
"Bulgaars", // 137
|
"Bulgaars", // 137
|
||||||
"Armeens", // 138
|
"Armeens", // 138
|
||||||
"Arabisch" // 139
|
"Arabisch", // 139
|
||||||
|
"FM min stepsize" // 140
|
||||||
}, //
|
}, //
|
||||||
|
|
||||||
{ "Polski", // Polish
|
{ "Polski", // Polish
|
||||||
@@ -424,7 +426,8 @@ static const char myLanguage[9][140][85] = {
|
|||||||
"Georgian", // 136
|
"Georgian", // 136
|
||||||
"Bulgarian", // 137
|
"Bulgarian", // 137
|
||||||
"Armenian", // 138
|
"Armenian", // 138
|
||||||
"Arabic" // 139
|
"Arabic", // 139
|
||||||
|
"FM min stepsize" // 140
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Hrvatski", // Croatian
|
{ "Hrvatski", // Croatian
|
||||||
@@ -566,7 +569,8 @@ static const char myLanguage[9][140][85] = {
|
|||||||
"Georgian", // 136
|
"Georgian", // 136
|
||||||
"Bulgarian", // 137
|
"Bulgarian", // 137
|
||||||
"Armenian", // 138
|
"Armenian", // 138
|
||||||
"Arabic" // 139
|
"Arabic", // 139
|
||||||
|
"FM min stepsize" // 140
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Ελληνικά", // Greek
|
{ "Ελληνικά", // Greek
|
||||||
@@ -708,7 +712,8 @@ static const char myLanguage[9][140][85] = {
|
|||||||
"Γεωργιανά", // 136
|
"Γεωργιανά", // 136
|
||||||
"Βουλγαρικά", // 137
|
"Βουλγαρικά", // 137
|
||||||
"Αρμενικά", // 138
|
"Αρμενικά", // 138
|
||||||
"Αραβικά" // 139
|
"Αραβικά", // 139
|
||||||
|
"FM min stepsize" // 140
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Romana", // Romanian
|
{ "Romana", // Romanian
|
||||||
@@ -850,7 +855,8 @@ static const char myLanguage[9][140][85] = {
|
|||||||
"Georgian", // 136
|
"Georgian", // 136
|
||||||
"Bulgarian", // 137
|
"Bulgarian", // 137
|
||||||
"Armenian", // 138
|
"Armenian", // 138
|
||||||
"Arabic" // 139
|
"Arabic", // 139
|
||||||
|
"FM min stepsize" // 140
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Deutsch", // German
|
{ "Deutsch", // German
|
||||||
@@ -992,7 +998,8 @@ static const char myLanguage[9][140][85] = {
|
|||||||
"Georgian", // 136
|
"Georgian", // 136
|
||||||
"Bulgarian", // 137
|
"Bulgarian", // 137
|
||||||
"Armenian", // 138
|
"Armenian", // 138
|
||||||
"Arabic" // 139
|
"Arabic", // 139
|
||||||
|
"FM min stepsize" // 140
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Czech", // Czech
|
{ "Czech", // Czech
|
||||||
@@ -1134,7 +1141,8 @@ static const char myLanguage[9][140][85] = {
|
|||||||
"Georgian", // 136
|
"Georgian", // 136
|
||||||
"Bulgarian", // 137
|
"Bulgarian", // 137
|
||||||
"Armenian", // 138
|
"Armenian", // 138
|
||||||
"Arabic" // 139
|
"Arabic", // 139
|
||||||
|
"FM min stepsize" // 140
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Slovak", // Slovak
|
{ "Slovak", // Slovak
|
||||||
@@ -1276,6 +1284,7 @@ static const char myLanguage[9][140][85] = {
|
|||||||
"Georgian", // 136
|
"Georgian", // 136
|
||||||
"Bulgarian", // 137
|
"Bulgarian", // 137
|
||||||
"Armenian", // 138
|
"Armenian", // 138
|
||||||
"Arabic" // 139
|
"Arabic", // 139
|
||||||
|
"FM min stepsize" // 140
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user