diff --git a/TEF6686_ESP32.ino b/TEF6686_ESP32.ino index 114df66..320d716 100644 --- a/TEF6686_ESP32.ino +++ b/TEF6686_ESP32.ino @@ -534,6 +534,7 @@ void setup() { ShowBW(); setupmode = false; sprite.createSprite(313, 18); + radio.tone(50, -5, 2000); } void loop() { diff --git a/src/TEF6686.cpp b/src/TEF6686.cpp index e1c6758..a386817 100644 --- a/src/TEF6686.cpp +++ b/src/TEF6686.cpp @@ -423,3 +423,10 @@ uint16_t TEF6686::tune_AM(uint8_t up, uint8_t stepsize) { Radio_SetFreq_AM(Radio_GetCurrentFreq_AM()); return Radio_GetCurrentFreq_AM(); } + +void TEF6686::tone(uint16_t time, int16_t amplitude, uint16_t frequency) { + devTEF_Audio_Set_Mute(0); + devTEF_Radio_Set_Wavegen(1, amplitude, frequency); + delay (time); + devTEF_Radio_Set_Wavegen(0, 0, 0); +} diff --git a/src/TEF6686.h b/src/TEF6686.h index 07e4fb3..30feb6a 100644 --- a/src/TEF6686.h +++ b/src/TEF6686.h @@ -63,6 +63,7 @@ class TEF6686 { void setStereoLevel(uint16_t start); void setUnMute(); void setVolume(int16_t volume); + void tone(uint16_t time, int16_t amplitude, uint16_t frequency); uint8_t af_counter; private: diff --git a/src/Tuner_Drv_Lithio.cpp b/src/Tuner_Drv_Lithio.cpp index 98aac14..6f5e8e4 100644 --- a/src/Tuner_Drv_Lithio.cpp +++ b/src/Tuner_Drv_Lithio.cpp @@ -221,3 +221,14 @@ bool devTEF_Radio_Get_Identification (uint16_t *device, uint16_t *hw_version, ui *sw_version = Convert8bto16b(buf + 4); return r; } + +bool devTEF_Radio_Set_Wavegen(bool mode, int16_t amplitude, uint16_t freq) +{ + if (mode == true) { + devTEF_Set_Cmd(TEF_AUDIO, Cmd_Set_Input, 5, 240); + return devTEF_Set_Cmd(TEF_AUDIO, Cmd_Set_WaveGen, 15, 5, 0, amplitude*10, freq, amplitude*10 , freq); + } else { + devTEF_Set_Cmd(TEF_AUDIO, Cmd_Set_Input, 5, 0); + return devTEF_Set_Cmd(TEF_AUDIO, Cmd_Set_WaveGen, 15, 0); + } +} \ No newline at end of file diff --git a/src/Tuner_Drv_Lithio.h b/src/Tuner_Drv_Lithio.h index 72c91db..563ec47 100644 --- a/src/Tuner_Drv_Lithio.h +++ b/src/Tuner_Drv_Lithio.h @@ -25,12 +25,14 @@ typedef enum Cmd_Set_RDS = 81, Cmd_Get_Quality_Status = 128, Cmd_Get_RDS_Status = 130, - Cmd_Get_Signal_Status = 133, + Cmd_Get_Signal_Status = 133 } TEF_RADIO_COMMAND; typedef enum { Cmd_Set_Volume = 10, Cmd_Set_Mute = 11, + Cmd_Set_Input = 12, + Cmd_Set_WaveGen = 24 } TEF_AUDIO_COMMAND; typedef enum @@ -68,3 +70,4 @@ bool devTEF_Radio_Set_Highcut_Level(uint16_t mode, uint16_t start, uint16_t slop bool devTEF_Radio_Set_Highcut_Noise(uint16_t mode, uint16_t start, uint16_t slope); bool devTEF_Radio_Set_Highcut_Mph(uint16_t mode, uint16_t start, uint16_t slope); bool devTEF_Radio_Set_RDS(bool fullsearchrds); +bool devTEF_Radio_Set_Wavegen(bool mode, int16_t amplitude, uint16_t freq); \ No newline at end of file