|
ESP-IDF Firmware
Firmware architecture and call graph
|
#include <math.h>#include <string.h>#include "sdkconfig.h"#include "freertos/FreeRTOS.h"#include "freertos/task.h"#include "driver/i2s_std.h"#include "esp_log.h"#include "esp_check.h"#include "wave_gen.h"Go to the source code of this file.
Macros | |
| #define | WAVE_GEN_HAS_SDM 0 |
| #define | I2S_BUFFER_SIZE 1024 |
| #define | DEFAULT_SAMPLE_RATE 44100 |
| #define | I2S_BUFFER_SIZE 1024 |
| #define | DEFAULT_SAMPLE_RATE 44100 |
| #define | PI 3.14159265358979323846f |
Functions | |
| static void | wave_gen_task (void *args) |
| esp_err_t | wave_gen_init (const wave_gen_config_t *config) |
| Initialize the Wave Generator component. | |
| esp_err_t | wave_gen_start (void) |
| Start the wave generation task. | |
| esp_err_t | wave_gen_stop (void) |
| Stop the wave generation task. | |
| void | wave_gen_set_freq (float freq_hz) |
| Set the frequency of the generated wave. | |
| void | wave_gen_set_type (wave_type_t type) |
| Set the waveform type. | |
| void | wave_gen_set_volume (float volume) |
| Set the output volume/amplitude. | |
| esp_err_t | wave_gen_sdm_start (void) |
| Start the SDM sine generator (uses CONFIG_SDM_* settings). | |
| esp_err_t | wave_gen_sdm_stop (void) |
| Stop the SDM sine generator. | |
Variables | |
| static const char * | TAG = "wave_gen" |
| static i2s_chan_handle_t | tx_conn_handle = NULL |
| static TaskHandle_t | s_wave_task_handle = NULL |
| static bool | s_running = false |
| static float | s_frequency = 440.0f |
| static float | s_volume = 0.5f |
| static wave_type_t | s_type = WAVE_TYPE_SINE |
| static uint32_t | s_sample_rate = 44100 |
| static float | s_phase = 0.0f |
| #define DEFAULT_SAMPLE_RATE 44100 |
Definition at line 34 of file wave_gen.c.
| #define DEFAULT_SAMPLE_RATE 44100 |
Definition at line 34 of file wave_gen.c.
| #define I2S_BUFFER_SIZE 1024 |
Definition at line 33 of file wave_gen.c.
| #define I2S_BUFFER_SIZE 1024 |
Definition at line 33 of file wave_gen.c.
Referenced by wave_gen_task().
| #define PI 3.14159265358979323846f |
Definition at line 37 of file wave_gen.c.
Referenced by wave_gen_task().
| #define WAVE_GEN_HAS_SDM 0 |
Definition at line 28 of file wave_gen.c.
| esp_err_t wave_gen_init | ( | const wave_gen_config_t * | config | ) |
Initialize the Wave Generator component.
| config | Pointer to configuration structure |
Definition at line 213 of file wave_gen.c.
References wave_gen_config_t::bck_io_num, wave_gen_config_t::data_out_num, ESP_OK, ESP_RETURN_ON_ERROR, wave_gen_config_t::mck_io_num, s_sample_rate, wave_gen_config_t::sample_rate, TAG, tx_conn_handle, and wave_gen_config_t::ws_io_num.
Referenced by app_main().
| esp_err_t wave_gen_sdm_start | ( | void | ) |
Start the SDM sine generator (uses CONFIG_SDM_* settings).
Definition at line 303 of file wave_gen.c.
References ESP_OK, ESP_RETURN_ON_ERROR, and TAG.
Referenced by app_main().
| esp_err_t wave_gen_sdm_stop | ( | void | ) |
Stop the SDM sine generator.
Definition at line 318 of file wave_gen.c.
References ESP_OK.
| void wave_gen_set_freq | ( | float | freq_hz | ) |
Set the frequency of the generated wave.
| freq_hz | Frequency in Hertz |
Definition at line 284 of file wave_gen.c.
References s_frequency, and s_sample_rate.
| void wave_gen_set_type | ( | wave_type_t | type | ) |
Set the waveform type.
| type | One of wave_type_t |
Definition at line 291 of file wave_gen.c.
References s_type.
Referenced by app_main().
| void wave_gen_set_volume | ( | float | volume | ) |
Set the output volume/amplitude.
| volume | 0.0 to 1.0 (clamped) |
Definition at line 296 of file wave_gen.c.
References s_volume.
Referenced by app_main().
| esp_err_t wave_gen_start | ( | void | ) |
Start the wave generation task.
Definition at line 253 of file wave_gen.c.
References ESP_OK, ESP_RETURN_ON_ERROR, s_running, s_wave_task_handle, TAG, tx_conn_handle, and wave_gen_task().
Referenced by app_main().
| esp_err_t wave_gen_stop | ( | void | ) |
Stop the wave generation task.
Definition at line 266 of file wave_gen.c.
References ESP_OK, s_running, TAG, and tx_conn_handle.
|
static |
Definition at line 146 of file wave_gen.c.
References ESP_OK, I2S_BUFFER_SIZE, PI, s_frequency, s_phase, s_running, s_sample_rate, s_type, s_volume, s_wave_task_handle, TAG, tx_conn_handle, WAVE_TYPE_SAWTOOTH, WAVE_TYPE_SINE, WAVE_TYPE_SQUARE, and WAVE_TYPE_TRIANGLE.
Referenced by wave_gen_start().
|
static |
Definition at line 44 of file wave_gen.c.
Referenced by wave_gen_set_freq(), and wave_gen_task().
|
static |
Definition at line 48 of file wave_gen.c.
Referenced by wave_gen_task().
|
static |
Definition at line 41 of file wave_gen.c.
Referenced by wave_gen_start(), wave_gen_stop(), and wave_gen_task().
|
static |
Definition at line 47 of file wave_gen.c.
Referenced by wave_gen_init(), wave_gen_set_freq(), and wave_gen_task().
|
static |
Definition at line 46 of file wave_gen.c.
Referenced by wave_gen_set_type(), and wave_gen_task().
|
static |
Definition at line 45 of file wave_gen.c.
Referenced by wave_gen_set_volume(), and wave_gen_task().
|
static |
Definition at line 40 of file wave_gen.c.
Referenced by wave_gen_start(), and wave_gen_task().
|
static |
Definition at line 31 of file wave_gen.c.
|
static |
Definition at line 39 of file wave_gen.c.
Referenced by wave_gen_init(), wave_gen_start(), wave_gen_stop(), and wave_gen_task().