Improved extended bandwidth function
This commit is contained in:
@@ -3455,6 +3455,7 @@ void ShowOffset() {
|
|||||||
// Right arrow dimmed (◀)
|
// Right arrow dimmed (◀)
|
||||||
tft.fillTriangle(rightArrowBaseX, arrowBaseYTop, centerX + arrowGap, centerY, rightArrowBaseX, arrowBaseYBottom, SignificantColor);
|
tft.fillTriangle(rightArrowBaseX, arrowBaseYTop, centerX + arrowGap, centerY, rightArrowBaseX, arrowBaseYBottom, SignificantColor);
|
||||||
tuned = false;
|
tuned = false;
|
||||||
|
radio.extendBW(false);
|
||||||
} else if (USN < 250 && WAM < 250 && OStatus > -250 && OStatus < 250 && !SQ) {
|
} else if (USN < 250 && WAM < 250 && OStatus > -250 && OStatus < 250 && !SQ) {
|
||||||
// Both arrows dimmed
|
// Both arrows dimmed
|
||||||
tft.fillTriangle(leftArrowBaseX, arrowBaseYTop, centerX - arrowGap, centerY, leftArrowBaseX, arrowBaseYBottom, GreyoutColor);
|
tft.fillTriangle(leftArrowBaseX, arrowBaseYTop, centerX - arrowGap, centerY, leftArrowBaseX, arrowBaseYBottom, GreyoutColor);
|
||||||
@@ -3462,6 +3463,7 @@ void ShowOffset() {
|
|||||||
// Center dot active
|
// Center dot active
|
||||||
tft.fillCircle(centerX, centerY, 3, InsignificantColor);
|
tft.fillCircle(centerX, centerY, 3, InsignificantColor);
|
||||||
tuned = true;
|
tuned = true;
|
||||||
|
radio.extendBW(true);
|
||||||
} else if (OStatus > 250) {
|
} else if (OStatus > 250) {
|
||||||
// Right arrow active (◀)
|
// Right arrow active (◀)
|
||||||
tft.fillTriangle(rightArrowBaseX, arrowBaseYTop, centerX + arrowGap, centerY, rightArrowBaseX, arrowBaseYBottom, GreyoutColor);
|
tft.fillTriangle(rightArrowBaseX, arrowBaseYTop, centerX + arrowGap, centerY, rightArrowBaseX, arrowBaseYBottom, GreyoutColor);
|
||||||
@@ -3470,12 +3472,14 @@ void ShowOffset() {
|
|||||||
// Left arrow dimmed (▶)
|
// Left arrow dimmed (▶)
|
||||||
tft.fillTriangle(leftArrowBaseX, arrowBaseYTop, centerX - arrowGap, centerY, leftArrowBaseX, arrowBaseYBottom, SignificantColor);
|
tft.fillTriangle(leftArrowBaseX, arrowBaseYTop, centerX - arrowGap, centerY, leftArrowBaseX, arrowBaseYBottom, SignificantColor);
|
||||||
tuned = false;
|
tuned = false;
|
||||||
|
radio.extendBW(false);
|
||||||
} else {
|
} else {
|
||||||
// Everything dimmed
|
// Everything dimmed
|
||||||
tft.fillTriangle(leftArrowBaseX, arrowBaseYTop, centerX - arrowGap, centerY, leftArrowBaseX, arrowBaseYBottom, GreyoutColor);
|
tft.fillTriangle(leftArrowBaseX, arrowBaseYTop, centerX - arrowGap, centerY, leftArrowBaseX, arrowBaseYBottom, GreyoutColor);
|
||||||
tft.fillTriangle(rightArrowBaseX, arrowBaseYTop, centerX + arrowGap, centerY, rightArrowBaseX, arrowBaseYBottom, GreyoutColor);
|
tft.fillTriangle(rightArrowBaseX, arrowBaseYTop, centerX + arrowGap, centerY, rightArrowBaseX, arrowBaseYBottom, GreyoutColor);
|
||||||
tft.fillCircle(centerX, centerY, 3, GreyoutColor);
|
tft.fillCircle(centerX, centerY, 3, GreyoutColor);
|
||||||
tuned = false;
|
tuned = false;
|
||||||
|
radio.extendBW(false);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (OStatus < -2) {
|
if (OStatus < -2) {
|
||||||
|
|||||||
+5
-1
@@ -175,6 +175,10 @@ void TEF6686::power(bool mode) {
|
|||||||
if (mode == 0) devTEF_Set_Cmd(TEF_FM, Cmd_Tune_To, 7, 1, 10000);
|
if (mode == 0) devTEF_Set_Cmd(TEF_FM, Cmd_Tune_To, 7, 1, 10000);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void TEF6686::extendBW(bool yesno) {
|
||||||
|
devTEF_Radio_Extend_BW(yesno);
|
||||||
|
}
|
||||||
|
|
||||||
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;
|
||||||
@@ -597,7 +601,7 @@ void TEF6686::readRDS(byte showrdserrors) {
|
|||||||
|
|
||||||
if (!rds.rdsBerror || showrdserrors == 3) rdsblock = rds.rdsB >> 11; else return;
|
if (!rds.rdsBerror || showrdserrors == 3) rdsblock = rds.rdsB >> 11; else return;
|
||||||
rds.blockcounter[rdsblock]++;
|
rds.blockcounter[rdsblock]++;
|
||||||
processed_rdsblocks++;
|
processed_rdsblocks++;
|
||||||
|
|
||||||
switch (rdsblock) {
|
switch (rdsblock) {
|
||||||
case RDS_GROUP_0A:
|
case RDS_GROUP_0A:
|
||||||
|
|||||||
@@ -727,6 +727,7 @@ class TEF6686 {
|
|||||||
void setUnMute();
|
void setUnMute();
|
||||||
void setVolume(int8_t volume);
|
void setVolume(int8_t volume);
|
||||||
void tone(uint16_t time, int16_t amplitude, uint16_t frequency);
|
void tone(uint16_t time, int16_t amplitude, uint16_t frequency);
|
||||||
|
void extendBW(bool yesno);
|
||||||
uint16_t getBlockA(void);
|
uint16_t getBlockA(void);
|
||||||
String trimTrailingSpaces(String str);
|
String trimTrailingSpaces(String str);
|
||||||
uint8_t af_counter;
|
uint8_t af_counter;
|
||||||
|
|||||||
@@ -132,6 +132,10 @@ void devTEF_Radio_Set_ChannelEqualizer(bool eq) {
|
|||||||
devTEF_Set_Cmd(TEF_FM, Cmd_Set_ChannelEqualizer, 5, eq);
|
devTEF_Set_Cmd(TEF_FM, Cmd_Set_ChannelEqualizer, 5, eq);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void devTEF_Radio_Extend_BW(bool yesno) {
|
||||||
|
devTEF_Set_Cmd(TEF_FM, Cmd_Set_Bandwidth_Options, 5, (yesno ? 400 : 950));
|
||||||
|
}
|
||||||
|
|
||||||
void devTEF_Radio_Set_Stereo_Min(bool mode) {
|
void devTEF_Radio_Set_Stereo_Min(bool mode) {
|
||||||
if (mode) devTEF_Set_Cmd(TEF_FM, Cmd_Set_Stereo_Min, 7, 2); else devTEF_Set_Cmd(TEF_FM, Cmd_Set_Stereo_Min, 7, 0);
|
if (mode) devTEF_Set_Cmd(TEF_FM, Cmd_Set_Stereo_Min, 7, 2); else devTEF_Set_Cmd(TEF_FM, Cmd_Set_Stereo_Min, 7, 0);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -36,6 +36,7 @@ typedef enum {
|
|||||||
Cmd_Set_StHiBlend_Max = 75,
|
Cmd_Set_StHiBlend_Max = 75,
|
||||||
Cmd_Set_RDS = 81,
|
Cmd_Set_RDS = 81,
|
||||||
Cmd_Set_Specials = 85,
|
Cmd_Set_Specials = 85,
|
||||||
|
Cmd_Set_Bandwidth_Options = 86,
|
||||||
Cmd_Set_StBandBlend_Time = 90,
|
Cmd_Set_StBandBlend_Time = 90,
|
||||||
Cmd_Set_StBandBlend_Gain = 91,
|
Cmd_Set_StBandBlend_Gain = 91,
|
||||||
Cmd_Set_StBandBlend_Bias = 92,
|
Cmd_Set_StBandBlend_Bias = 92,
|
||||||
@@ -103,6 +104,7 @@ void devTEF_Radio_Set_NoisBlanker(uint8_t mode, uint16_t start);
|
|||||||
void devTEF_Radio_Set_Wavegen(bool mode, int16_t amplitude, uint16_t freq);
|
void devTEF_Radio_Set_Wavegen(bool mode, int16_t amplitude, uint16_t freq);
|
||||||
void devTEF_Radio_Set_I2S_Input(bool mode);
|
void devTEF_Radio_Set_I2S_Input(bool mode);
|
||||||
void devTEF_Radio_Set_GPIO(uint8_t mode);
|
void devTEF_Radio_Set_GPIO(uint8_t mode);
|
||||||
|
void devTEF_Radio_Extend_BW(bool yesno);
|
||||||
|
|
||||||
bool devTEF_Radio_Get_Identification (uint16_t *device, uint16_t *hw_version, uint16_t *sw_version);
|
bool devTEF_Radio_Get_Identification (uint16_t *device, uint16_t *hw_version, uint16_t *sw_version);
|
||||||
bool devTEF_Radio_Get_Quality_Status (uint16_t *status, int16_t *level, uint16_t *usn, uint16_t *wam, int16_t *offset, uint16_t *bandwidth, uint16_t *mod, int8_t *snr);
|
bool devTEF_Radio_Get_Quality_Status (uint16_t *status, int16_t *level, uint16_t *usn, uint16_t *wam, int16_t *offset, uint16_t *bandwidth, uint16_t *mod, int8_t *snr);
|
||||||
|
|||||||
@@ -15,9 +15,7 @@ const unsigned char tuner_init_tab[] PROGMEM = {
|
|||||||
9, 0x20, 0x49, 0x01, 0x00, 0x00, 0x00, 0xA0, 0x00, 0x8C,
|
9, 0x20, 0x49, 0x01, 0x00, 0x00, 0x00, 0xA0, 0x00, 0x8C,
|
||||||
9, 0x20, 0x4A, 0x01, 0x00, 0x00, 0x00, 0xA0, 0x00, 0x8C,
|
9, 0x20, 0x4A, 0x01, 0x00, 0x00, 0x00, 0xA0, 0x00, 0x8C,
|
||||||
7, 0x20, 0x4B, 0x01, 0x00, 0x00, 0x0F, 0xA0,
|
7, 0x20, 0x4B, 0x01, 0x00, 0x00, 0x0F, 0xA0,
|
||||||
5, 0x20, 0x56, 0x01, 0x01, 0xf4,
|
|
||||||
7, 0x30, 0x15, 0x01, 0x00, 0x80, 0x00, 0x01,
|
7, 0x30, 0x15, 0x01, 0x00, 0x80, 0x00, 0x01,
|
||||||
13, 0x30, 0x16, 0x01, 0x00, 0x20, 0x00, 0x01, 0x00, 0x10, 0x00, 0x00, 0x12, 0xc0,
|
|
||||||
13, 0x30, 0x16, 0x01, 0x00, 0x21, 0x00, 0x02, 0x00, 0x10, 0x01, 0x00, 0x12, 0xc0,
|
13, 0x30, 0x16, 0x01, 0x00, 0x21, 0x00, 0x02, 0x00, 0x10, 0x01, 0x00, 0x12, 0xc0,
|
||||||
7, 0x30, 0x0d, 0x01, 0x00, 0x80, 0x00, 0xe0
|
7, 0x30, 0x0d, 0x01, 0x00, 0x80, 0x00, 0xe0
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user