You've already forked TEF6686_ESP32
Improved extended bandwidth function
This commit is contained in:
@@ -3455,6 +3455,7 @@ void ShowOffset() {
|
||||
// Right arrow dimmed (◀)
|
||||
tft.fillTriangle(rightArrowBaseX, arrowBaseYTop, centerX + arrowGap, centerY, rightArrowBaseX, arrowBaseYBottom, SignificantColor);
|
||||
tuned = false;
|
||||
radio.extendBW(false);
|
||||
} else if (USN < 250 && WAM < 250 && OStatus > -250 && OStatus < 250 && !SQ) {
|
||||
// Both arrows dimmed
|
||||
tft.fillTriangle(leftArrowBaseX, arrowBaseYTop, centerX - arrowGap, centerY, leftArrowBaseX, arrowBaseYBottom, GreyoutColor);
|
||||
@@ -3462,6 +3463,7 @@ void ShowOffset() {
|
||||
// Center dot active
|
||||
tft.fillCircle(centerX, centerY, 3, InsignificantColor);
|
||||
tuned = true;
|
||||
radio.extendBW(true);
|
||||
} else if (OStatus > 250) {
|
||||
// Right arrow active (◀)
|
||||
tft.fillTriangle(rightArrowBaseX, arrowBaseYTop, centerX + arrowGap, centerY, rightArrowBaseX, arrowBaseYBottom, GreyoutColor);
|
||||
@@ -3470,12 +3472,14 @@ void ShowOffset() {
|
||||
// Left arrow dimmed (▶)
|
||||
tft.fillTriangle(leftArrowBaseX, arrowBaseYTop, centerX - arrowGap, centerY, leftArrowBaseX, arrowBaseYBottom, SignificantColor);
|
||||
tuned = false;
|
||||
radio.extendBW(false);
|
||||
} else {
|
||||
// Everything dimmed
|
||||
tft.fillTriangle(leftArrowBaseX, arrowBaseYTop, centerX - arrowGap, centerY, leftArrowBaseX, arrowBaseYBottom, GreyoutColor);
|
||||
tft.fillTriangle(rightArrowBaseX, arrowBaseYTop, centerX + arrowGap, centerY, rightArrowBaseX, arrowBaseYBottom, GreyoutColor);
|
||||
tft.fillCircle(centerX, centerY, 3, GreyoutColor);
|
||||
tuned = false;
|
||||
radio.extendBW(false);
|
||||
}
|
||||
} else {
|
||||
if (OStatus < -2) {
|
||||
|
||||
@@ -175,6 +175,10 @@ void TEF6686::power(bool mode) {
|
||||
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) {
|
||||
devTEF_Radio_Tune_To(frequency);
|
||||
currentfreq = ((frequency + 5) / 10) * 10;
|
||||
@@ -597,8 +601,8 @@ void TEF6686::readRDS(byte showrdserrors) {
|
||||
|
||||
if (!rds.rdsBerror || showrdserrors == 3) rdsblock = rds.rdsB >> 11; else return;
|
||||
rds.blockcounter[rdsblock]++;
|
||||
processed_rdsblocks++;
|
||||
|
||||
processed_rdsblocks++;
|
||||
|
||||
switch (rdsblock) {
|
||||
case RDS_GROUP_0A:
|
||||
case RDS_GROUP_0B:
|
||||
|
||||
@@ -727,6 +727,7 @@ class TEF6686 {
|
||||
void setUnMute();
|
||||
void setVolume(int8_t volume);
|
||||
void tone(uint16_t time, int16_t amplitude, uint16_t frequency);
|
||||
void extendBW(bool yesno);
|
||||
uint16_t getBlockA(void);
|
||||
String trimTrailingSpaces(String str);
|
||||
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);
|
||||
}
|
||||
|
||||
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) {
|
||||
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_RDS = 81,
|
||||
Cmd_Set_Specials = 85,
|
||||
Cmd_Set_Bandwidth_Options = 86,
|
||||
Cmd_Set_StBandBlend_Time = 90,
|
||||
Cmd_Set_StBandBlend_Gain = 91,
|
||||
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_I2S_Input(bool 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_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, 0x4A, 0x01, 0x00, 0x00, 0x00, 0xA0, 0x00, 0x8C,
|
||||
7, 0x20, 0x4B, 0x01, 0x00, 0x00, 0x0F, 0xA0,
|
||||
5, 0x20, 0x56, 0x01, 0x01, 0xf4,
|
||||
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,
|
||||
7, 0x30, 0x0d, 0x01, 0x00, 0x80, 0x00, 0xe0
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user