Updated behaviour on 200kHz FM stepsize

This commit is contained in:
Sjef Verhoeven PE5PVB
2023-11-16 17:21:18 +01:00
parent 9ae4e16dd2
commit ccc4e40731
3 changed files with 26 additions and 17 deletions

View File

@@ -1979,13 +1979,14 @@ void Round100K(unsigned int freq) {
} }
void Round200K(unsigned int freq) { void Round200K(unsigned int freq) {
if (freq % 10 < 5) { frequency = (freq / 10) * 10;
frequency = (freq - freq % 10);
} else { if (freq % 10 >= 5) frequency += 10;
frequency = (freq - (freq % 10) + 10); if ((frequency / 100) % 2 == 0) frequency += 10;
if ((freq % 10) % 2 != 0) frequency += 10; if (frequency > 10800) frequency = 10790;
} if (frequency % 20 == 0 && (frequency / 10) % 2 == 0) frequency -= 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);
@@ -3109,8 +3110,10 @@ void TuneUp() {
if (band == BAND_FM) { if (band == BAND_FM) {
frequency += temp; frequency += temp;
if (fmdefaultstepsize == 2 && stepsize == 0 && frequency == 8795) frequency = 8790;
if (frequency >= (HighEdgeSet * 10) + 1) { if (frequency >= (HighEdgeSet * 10) + 1) {
frequency = LowEdgeSet * 10; frequency = LowEdgeSet * 10;
if (fmdefaultstepsize == 2 && stepsize == 0 && frequency == 8750) frequency = 8775;
if (edgebeep) EdgeBeeper(); if (edgebeep) EdgeBeeper();
} }
radio.SetFreq(frequency); radio.SetFreq(frequency);
@@ -3191,8 +3194,12 @@ void TuneDown() {
if (band == BAND_FM) { if (band == BAND_FM) {
frequency -= temp; frequency -= temp;
if (fmdefaultstepsize == 2 && stepsize == 0 && frequency == 8770) frequency = 8775;
if (fmdefaultstepsize == 2 && stepsize == 0 && frequency == 8755) frequency = 10790;
if (frequency < LowEdgeSet * 10) { if (frequency < LowEdgeSet * 10) {
frequency = HighEdgeSet * 10; frequency = HighEdgeSet * 10;
if (fmdefaultstepsize == 2 && stepsize == 0 && frequency == 10800) frequency = 10790;
if (edgebeep) EdgeBeeper(); if (edgebeep) EdgeBeeper();
} }
radio.SetFreq(frequency); radio.SetFreq(frequency);

View File

@@ -149,6 +149,7 @@ void TEF6686::power(bool mode) {
void TEF6686::SetFreq(uint16_t frequency) { void TEF6686::SetFreq(uint16_t frequency) {
devTEF_Radio_Tune_To(frequency); devTEF_Radio_Tune_To(frequency);
currentfreq = ((frequency + 5) / 10) * 10; currentfreq = ((frequency + 5) / 10) * 10;
currentfreq2 = frequency;
} }
void TEF6686::SetFreqAM(uint16_t frequency) { void TEF6686::SetFreqAM(uint16_t frequency) {
@@ -452,25 +453,25 @@ void TEF6686::readRDS(byte showrdserrors)
if (SPIFFS.begin(true)) { if (SPIFFS.begin(true)) {
delay(5); delay(5);
if (currentfreq < 9000) { if (currentfreq2 < 9000) {
file = SPIFFS.open("/USA_87-90.csv"); file = SPIFFS.open("/USA_87-90.csv");
} else if (currentfreq > 9000 && currentfreq < 9200) { } else if (currentfreq2 > 9000 && currentfreq2 < 9200) {
file = SPIFFS.open("/USA_90-92.csv"); file = SPIFFS.open("/USA_90-92.csv");
} else if (currentfreq > 9200 && currentfreq < 9400) { } else if (currentfreq2 > 9200 && currentfreq2 < 9400) {
file = SPIFFS.open("/USA_92-94.csv"); file = SPIFFS.open("/USA_92-94.csv");
} else if (currentfreq > 9400 && currentfreq < 9600) { } else if (currentfreq2 > 9400 && currentfreq2 < 9600) {
file = SPIFFS.open("/USA_94-96.csv"); file = SPIFFS.open("/USA_94-96.csv");
} else if (currentfreq > 9600 && currentfreq < 9800) { } else if (currentfreq2 > 9600 && currentfreq2 < 9800) {
file = SPIFFS.open("/USA_96-98.csv"); file = SPIFFS.open("/USA_96-98.csv");
} else if (currentfreq > 9800 && currentfreq < 10000) { } else if (currentfreq2 > 9800 && currentfreq2 < 10000) {
file = SPIFFS.open("/USA_98-100.csv"); file = SPIFFS.open("/USA_98-100.csv");
} else if (currentfreq > 10000 && currentfreq < 10200) { } else if (currentfreq2 > 10000 && currentfreq2 < 10200) {
file = SPIFFS.open("/USA_100-102.csv"); file = SPIFFS.open("/USA_100-102.csv");
} else if (currentfreq > 10200 && currentfreq < 10400) { } else if (currentfreq2 > 10200 && currentfreq2 < 10400) {
file = SPIFFS.open("/USA_102-104.csv"); file = SPIFFS.open("/USA_102-104.csv");
} else if (currentfreq > 10400 && currentfreq < 10600) { } else if (currentfreq2 > 10400 && currentfreq2 < 10600) {
file = SPIFFS.open("/USA_104-106.csv"); file = SPIFFS.open("/USA_104-106.csv");
} else if (currentfreq > 10600) { } else if (currentfreq2 > 10600) {
file = SPIFFS.open("/USA_106-108.csv"); file = SPIFFS.open("/USA_106-108.csv");
} }
@@ -506,7 +507,7 @@ void TEF6686::readRDS(byte showrdserrors)
stationState[sizeof(stationState) - 1] = '\0'; stationState[sizeof(stationState) - 1] = '\0';
} }
if (frequencyValue == currentfreq && static_cast<uint16_t>(firstColumnValue) == rds.correctPI) { if (frequencyValue == currentfreq2 && static_cast<uint16_t>(firstColumnValue) == rds.correctPI) {
strncpy(rds.stationID, stationID, 7); strncpy(rds.stationID, stationID, 7);
strncpy(rds.stationState, stationState, 2); strncpy(rds.stationState, stationState, 2);
foundMatch = true; foundMatch = true;

View File

@@ -731,6 +731,7 @@ class TEF6686 {
char RDSplus1[45]; char RDSplus1[45];
char RDSplus2[45]; char RDSplus2[45];
uint16_t currentfreq; uint16_t currentfreq;
uint16_t currentfreq2;
bool togglebit; bool togglebit;
bool runningbit; bool runningbit;
bool initrt; bool initrt;