+36
-23
@@ -111,6 +111,12 @@ unsigned int HighEdgeSet;
|
|||||||
int LevelOffset;
|
int LevelOffset;
|
||||||
unsigned int LowEdgeSet;
|
unsigned int LowEdgeSet;
|
||||||
int LowLevelSet;
|
int LowLevelSet;
|
||||||
|
unsigned int LWHighEdgeSet;
|
||||||
|
unsigned int LWLowEdgeSet;
|
||||||
|
unsigned int MWHighEdgeSet;
|
||||||
|
unsigned int MWLowEdgeSet;
|
||||||
|
unsigned int SWHighEdgeSet;
|
||||||
|
unsigned int SWLowEdgeSet;
|
||||||
int lowsignaltimer;
|
int lowsignaltimer;
|
||||||
int menuoption = 30;
|
int menuoption = 30;
|
||||||
int MStatusold;
|
int MStatusold;
|
||||||
@@ -246,6 +252,13 @@ void setup() {
|
|||||||
frequency_MW = EEPROM.readUInt(225);
|
frequency_MW = EEPROM.readUInt(225);
|
||||||
frequency_SW = EEPROM.readUInt(229);
|
frequency_SW = EEPROM.readUInt(229);
|
||||||
|
|
||||||
|
LWLowEdgeSet = FREQ_LW_LOW_EDGE_MIN; // later will read from flash
|
||||||
|
LWHighEdgeSet = FREQ_LW_HIGH_EDGE_MAX; // later will read from flash
|
||||||
|
MWLowEdgeSet = region == 0 ? FREQ_MW_LOW_EDGE_MIN_9K : FREQ_MW_LOW_EDGE_MIN_10K; // later will read from flash
|
||||||
|
MWHighEdgeSet = region == 0 ? FREQ_MW_HIGH_EDGE_MAX_9K : FREQ_MW_HIGH_EDGE_MAX_10K; // later will read from flash
|
||||||
|
SWLowEdgeSet = FREQ_SW_LOW_EDGE_MIN;
|
||||||
|
SWHighEdgeSet = FREQ_SW_HIGH_EDGE_MAX;
|
||||||
|
|
||||||
for (int i = 0; i < 30; i++) memoryband[i] = EEPROM.readByte(i + 60);
|
for (int i = 0; i < 30; i++) memoryband[i] = EEPROM.readByte(i + 60);
|
||||||
for (int i = 0; i < 30; i++) memory[i] = EEPROM.readUInt((i * 4) + 100);
|
for (int i = 0; i < 30; i++) memory[i] = EEPROM.readUInt((i * 4) + 100);
|
||||||
btStop();
|
btStop();
|
||||||
@@ -646,20 +659,20 @@ void LimitAMFrequency() {
|
|||||||
switch (band) {
|
switch (band) {
|
||||||
case BAND_LW:
|
case BAND_LW:
|
||||||
frequency_AM = frequency_LW;
|
frequency_AM = frequency_LW;
|
||||||
if (frequency_AM > FREQ_LW_END || frequency_AM < FREQ_LW_START) {
|
if (frequency_AM > LWHighEdgeSet || frequency_AM < LWLowEdgeSet) {
|
||||||
frequency_AM = FREQ_LW_START;
|
frequency_AM = LWLowEdgeSet;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case BAND_MW:
|
case BAND_MW:
|
||||||
frequency_AM = frequency_MW;
|
frequency_AM = frequency_MW;
|
||||||
if (frequency_AM > (region == 0 ? FREQ_MW_END_EU : FREQ_MW_END_US) || frequency_AM < (region == 0 ? FREQ_MW_START_EU : FREQ_MW_START_US)) {
|
if (frequency_AM > MWHighEdgeSet || frequency_AM < MWLowEdgeSet) {
|
||||||
frequency_AM = region == 0 ? FREQ_MW_START_EU : FREQ_MW_START_US;
|
frequency_AM = MWLowEdgeSet; // take care of 9K/10K step
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case BAND_SW:
|
case BAND_SW:
|
||||||
frequency_AM = frequency_SW;
|
frequency_AM = frequency_SW;
|
||||||
if (frequency_AM > FREQ_SW_END || frequency_AM < FREQ_SW_START) {
|
if (frequency_AM > SWHighEdgeSet || frequency_AM < SWLowEdgeSet) {
|
||||||
frequency_AM = FREQ_SW_START;
|
frequency_AM = SWLowEdgeSet;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -2887,7 +2900,7 @@ void XDRGTKRoutine() {
|
|||||||
unsigned int freqtemp;
|
unsigned int freqtemp;
|
||||||
freqtemp = atoi(buff + 1);
|
freqtemp = atoi(buff + 1);
|
||||||
if (seek == true) seek = false;
|
if (seek == true) seek = false;
|
||||||
if (freqtemp >= FREQ_LW_START && freqtemp <= FREQ_LW_END) {
|
if (freqtemp >= LWLowEdgeSet && freqtemp <= LWHighEdgeSet) {
|
||||||
frequency_AM = freqtemp;
|
frequency_AM = freqtemp;
|
||||||
if (band != BAND_LW) {
|
if (band != BAND_LW) {
|
||||||
band = BAND_LW;
|
band = BAND_LW;
|
||||||
@@ -2896,7 +2909,7 @@ void XDRGTKRoutine() {
|
|||||||
radio.SetFreqAM(frequency_AM);
|
radio.SetFreqAM(frequency_AM);
|
||||||
}
|
}
|
||||||
Serial.print("M1\n");
|
Serial.print("M1\n");
|
||||||
} else if (freqtemp >= (region == 0 ? FREQ_MW_START_EU : FREQ_MW_START_US) && freqtemp <= (region == 0 ? FREQ_MW_END_EU : FREQ_MW_END_US)) {
|
} else if (freqtemp >= MWLowEdgeSet && freqtemp <= MWHighEdgeSet) {
|
||||||
frequency_AM = freqtemp;
|
frequency_AM = freqtemp;
|
||||||
if (band != BAND_MW) {
|
if (band != BAND_MW) {
|
||||||
band = BAND_MW;
|
band = BAND_MW;
|
||||||
@@ -2905,7 +2918,7 @@ void XDRGTKRoutine() {
|
|||||||
radio.SetFreqAM(frequency_AM);
|
radio.SetFreqAM(frequency_AM);
|
||||||
}
|
}
|
||||||
Serial.print("M2\n");
|
Serial.print("M2\n");
|
||||||
} else if (freqtemp >= FREQ_SW_START && freqtemp <= FREQ_SW_END) {
|
} else if (freqtemp >= SWLowEdgeSet && freqtemp <= SWHighEdgeSet) {
|
||||||
frequency_AM = freqtemp;
|
frequency_AM = freqtemp;
|
||||||
if (band != BAND_SW) {
|
if (band != BAND_SW) {
|
||||||
band = BAND_SW;
|
band = BAND_SW;
|
||||||
@@ -3079,7 +3092,7 @@ void TuneUp() {
|
|||||||
unsigned int temp;
|
unsigned int temp;
|
||||||
if (stepsize == 0) {
|
if (stepsize == 0) {
|
||||||
if (band != BAND_FM) {
|
if (band != BAND_FM) {
|
||||||
if (frequency_AM < FREQ_SW_START) {
|
if (frequency_AM < MWHighEdgeSet) {
|
||||||
if (region == 0) {
|
if (region == 0) {
|
||||||
temp = FREQ_MW_STEP_9K;
|
temp = FREQ_MW_STEP_9K;
|
||||||
frequency_AM = (frequency_AM / FREQ_MW_STEP_9K) * FREQ_MW_STEP_9K;
|
frequency_AM = (frequency_AM / FREQ_MW_STEP_9K) * FREQ_MW_STEP_9K;
|
||||||
@@ -3111,24 +3124,24 @@ void TuneUp() {
|
|||||||
|
|
||||||
if (band == BAND_LW) {
|
if (band == BAND_LW) {
|
||||||
frequency_AM += temp;
|
frequency_AM += temp;
|
||||||
if (frequency_AM > FREQ_LW_END) {
|
if (frequency_AM > LWHighEdgeSet) {
|
||||||
frequency_AM = FREQ_LW_START;
|
frequency_AM = LWLowEdgeSet;
|
||||||
if (edgebeep) EdgeBeeper();
|
if (edgebeep) EdgeBeeper();
|
||||||
}
|
}
|
||||||
radio.SetFreqAM(frequency_AM);
|
radio.SetFreqAM(frequency_AM);
|
||||||
frequency_LW = frequency_AM;
|
frequency_LW = frequency_AM;
|
||||||
} else if (band == BAND_MW) {
|
} else if (band == BAND_MW) {
|
||||||
frequency_AM += temp;
|
frequency_AM += temp;
|
||||||
if (frequency_AM > (region == 0 ? FREQ_MW_END_EU : FREQ_MW_END_US)) {
|
if (frequency_AM > MWHighEdgeSet) {
|
||||||
frequency_AM = (region == 0 ? FREQ_MW_START_EU : FREQ_MW_START_US);
|
frequency_AM = MWLowEdgeSet;
|
||||||
if (edgebeep) EdgeBeeper();
|
if (edgebeep) EdgeBeeper();
|
||||||
}
|
}
|
||||||
radio.SetFreqAM(frequency_AM);
|
radio.SetFreqAM(frequency_AM);
|
||||||
frequency_MW = frequency_AM;
|
frequency_MW = frequency_AM;
|
||||||
} else if (band == BAND_SW) {
|
} else if (band == BAND_SW) {
|
||||||
frequency_AM += temp;
|
frequency_AM += temp;
|
||||||
if (frequency_AM > FREQ_SW_END) {
|
if (frequency_AM > SWHighEdgeSet) {
|
||||||
frequency_AM = FREQ_SW_START;
|
frequency_AM = SWLowEdgeSet;
|
||||||
if (edgebeep) EdgeBeeper();
|
if (edgebeep) EdgeBeeper();
|
||||||
}
|
}
|
||||||
radio.SetFreqAM(frequency_AM);
|
radio.SetFreqAM(frequency_AM);
|
||||||
@@ -3142,7 +3155,7 @@ void TuneDown() {
|
|||||||
unsigned int temp;
|
unsigned int temp;
|
||||||
if (stepsize == 0) {
|
if (stepsize == 0) {
|
||||||
if (band != BAND_FM) {
|
if (band != BAND_FM) {
|
||||||
if (frequency_AM <= FREQ_SW_START) {
|
if (frequency_AM <= MWHighEdgeSet) {
|
||||||
if (frequency_AM == 2000) { // Fix Me :take care of 9K/10K Step
|
if (frequency_AM == 2000) { // Fix Me :take care of 9K/10K Step
|
||||||
frequency_AM = 1998;
|
frequency_AM = 1998;
|
||||||
temp = 0;
|
temp = 0;
|
||||||
@@ -3174,24 +3187,24 @@ void TuneDown() {
|
|||||||
|
|
||||||
if (band == BAND_LW) {
|
if (band == BAND_LW) {
|
||||||
frequency_AM -= temp;
|
frequency_AM -= temp;
|
||||||
if (frequency_AM < FREQ_LW_START) {
|
if (frequency_AM < LWLowEdgeSet) {
|
||||||
frequency_AM = FREQ_LW_END;
|
frequency_AM = LWHighEdgeSet;
|
||||||
if (edgebeep) EdgeBeeper();
|
if (edgebeep) EdgeBeeper();
|
||||||
}
|
}
|
||||||
radio.SetFreqAM(frequency_AM);
|
radio.SetFreqAM(frequency_AM);
|
||||||
frequency_LW = frequency_AM;
|
frequency_LW = frequency_AM;
|
||||||
} else if (band == BAND_MW) {
|
} else if (band == BAND_MW) {
|
||||||
frequency_AM -= temp;
|
frequency_AM -= temp;
|
||||||
if (frequency_AM < (region == 0 ? FREQ_MW_START_EU : FREQ_MW_START_US)) {
|
if (frequency_AM < MWLowEdgeSet) {
|
||||||
frequency_AM = region == 0 ? FREQ_MW_END_EU : FREQ_MW_END_US;
|
frequency_AM = MWHighEdgeSet;
|
||||||
if (edgebeep) EdgeBeeper();
|
if (edgebeep) EdgeBeeper();
|
||||||
}
|
}
|
||||||
radio.SetFreqAM(frequency_AM);
|
radio.SetFreqAM(frequency_AM);
|
||||||
frequency_MW = frequency_AM;
|
frequency_MW = frequency_AM;
|
||||||
} else if (band == BAND_SW) {
|
} else if (band == BAND_SW) {
|
||||||
frequency_AM -= temp;
|
frequency_AM -= temp;
|
||||||
if (frequency_AM < FREQ_SW_START) {
|
if (frequency_AM < SWLowEdgeSet) {
|
||||||
frequency_AM = FREQ_SW_END;
|
frequency_AM = SWHighEdgeSet;
|
||||||
if (edgebeep) EdgeBeeper();
|
if (edgebeep) EdgeBeeper();
|
||||||
}
|
}
|
||||||
radio.SetFreqAM(frequency_AM);
|
radio.SetFreqAM(frequency_AM);
|
||||||
|
|||||||
+12
-8
@@ -19,14 +19,18 @@ enum RADIO_BAND {
|
|||||||
#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_LW_START 144 // you can adjust here
|
#define FREQ_LW_LOW_EDGE_MIN 100
|
||||||
#define FREQ_LW_END 513 // you can adjust here
|
#define FREQ_LW_HIGH_EDGE_MAX 519
|
||||||
#define FREQ_MW_START_EU 522
|
#define FREQ_MW_LOW_EDGE_MIN_9K 522
|
||||||
#define FREQ_MW_END_EU 1620
|
#define FREQ_MW_LOW_EDGE_MIN_10K 520
|
||||||
#define FREQ_MW_START_US 520
|
#define FREQ_MW_HIGH_EDGE_MAX_9K 1791
|
||||||
#define FREQ_MW_END_US 1710
|
#define FREQ_MW_HIGH_EDGE_MAX_10K 1700
|
||||||
#define FREQ_FM_START 65000
|
#define FREQ_SW_LOW_EDGE_MIN 1700
|
||||||
#define FREQ_FM_END 108000
|
#define FREQ_SW_LOW_EDGE_MAX (FREQ_SW_160M_START)
|
||||||
|
#define FREQ_SW_HIGH_EDGE_MIN (FREQ_SW_11M_END)
|
||||||
|
#define FREQ_SW_HIGH_EDGE_MAX (FREQ_SW_END)
|
||||||
|
#define FREQ_FM_START 65000
|
||||||
|
#define FREQ_FM_END 108000
|
||||||
|
|
||||||
// according to https://www.short-wave.info/index.php?feature=frequencies
|
// according to https://www.short-wave.info/index.php?feature=frequencies
|
||||||
#define FREQ_SW_START 1800
|
#define FREQ_SW_START 1800
|
||||||
|
|||||||
Reference in New Issue
Block a user