Added tone function

Added tone function.
Syntax:
radio.tone(x, y, z);

x = length in mS
y = Amplitude in dB, -30 to 0
z = Frequency in Hertz. (10 to 20000)

Note. After this command the audio is set to Unmute.
This commit is contained in:
Sjef Verhoeven PE5PVB
2023-06-01 20:55:03 +02:00
parent ed302d83ec
commit d6f9562a93
5 changed files with 24 additions and 1 deletions

View File

@@ -534,6 +534,7 @@ void setup() {
ShowBW();
setupmode = false;
sprite.createSprite(313, 18);
radio.tone(50, -5, 2000);
}
void loop() {

View File

@@ -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);
}

View File

@@ -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:

View File

@@ -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);
}
}

View File

@@ -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);