mirror of
https://github.com/espressif/esp-idf.git
synced 2025-07-30 10:47:19 +02:00
i2s: add notes for the read task of i2s basic examples
This commit is contained in:
@ -242,7 +242,7 @@ static esp_err_t i2s_register_channel(i2s_controller_t *i2s_obj, i2s_dir_t dir,
|
|||||||
|
|
||||||
esp_err_t ret = ESP_OK;
|
esp_err_t ret = ESP_OK;
|
||||||
|
|
||||||
i2s_chan_handle_t new_chan = (i2s_chan_handle_t)heap_caps_calloc(1, sizeof(struct i2s_channel_t), I2S_MEM_ALLOC_CAPS);
|
i2s_chan_handle_t new_chan = (i2s_chan_handle_t)heap_caps_calloc(1, sizeof(struct i2s_channel_obj_t), I2S_MEM_ALLOC_CAPS);
|
||||||
ESP_RETURN_ON_FALSE(new_chan, ESP_ERR_NO_MEM, TAG, "No memory for new channel");
|
ESP_RETURN_ON_FALSE(new_chan, ESP_ERR_NO_MEM, TAG, "No memory for new channel");
|
||||||
new_chan->mode = I2S_COMM_MODE_NONE;
|
new_chan->mode = I2S_COMM_MODE_NONE;
|
||||||
new_chan->role = I2S_ROLE_MASTER; // Set default role to master
|
new_chan->role = I2S_ROLE_MASTER; // Set default role to master
|
||||||
|
@ -60,6 +60,9 @@ void i2s_example_pdm_rx_task(void *args)
|
|||||||
i2s_chan_handle_t rx_chan = i2s_example_init_pdm_rx();
|
i2s_chan_handle_t rx_chan = i2s_example_init_pdm_rx();
|
||||||
|
|
||||||
size_t r_bytes = 0;
|
size_t r_bytes = 0;
|
||||||
|
/* ATTENTION: The print and delay in the read task only for monitoring the data by human,
|
||||||
|
* Normally there shouldn't be any delays to ensure a short polling time,
|
||||||
|
* Otherwise the dma buffer will overflow and lead to the data lost */
|
||||||
while (1) {
|
while (1) {
|
||||||
/* Read i2s data */
|
/* Read i2s data */
|
||||||
if (i2s_channel_read(rx_chan, r_buf, EXAMPLE_BUFF_SIZE, &r_bytes, 1000) == ESP_OK) {
|
if (i2s_channel_read(rx_chan, r_buf, EXAMPLE_BUFF_SIZE, &r_bytes, 1000) == ESP_OK) {
|
||||||
|
@ -53,6 +53,9 @@ static void i2s_example_read_task(void *args)
|
|||||||
uint8_t *r_buf = (uint8_t *)calloc(1, EXAMPLE_BUFF_SIZE);
|
uint8_t *r_buf = (uint8_t *)calloc(1, EXAMPLE_BUFF_SIZE);
|
||||||
assert(r_buf); // Check if r_buf allocation success
|
assert(r_buf); // Check if r_buf allocation success
|
||||||
size_t r_bytes = 0;
|
size_t r_bytes = 0;
|
||||||
|
/* ATTENTION: The print and delay in the read task only for monitoring the data by human,
|
||||||
|
* Normally there shouldn't be any delays to ensure a short polling time,
|
||||||
|
* Otherwise the dma buffer will overflow and lead to the data lost */
|
||||||
while (1) {
|
while (1) {
|
||||||
/* Read i2s data */
|
/* Read i2s data */
|
||||||
if (i2s_channel_read(rx_chan, r_buf, EXAMPLE_BUFF_SIZE, &r_bytes, 1000) == ESP_OK) {
|
if (i2s_channel_read(rx_chan, r_buf, EXAMPLE_BUFF_SIZE, &r_bytes, 1000) == ESP_OK) {
|
||||||
|
@ -38,6 +38,9 @@ static void i2s_example_read_task(void *args)
|
|||||||
uint8_t *r_buf = (uint8_t *)calloc(1, EXAMPLE_BUFF_SIZE);
|
uint8_t *r_buf = (uint8_t *)calloc(1, EXAMPLE_BUFF_SIZE);
|
||||||
assert(r_buf); // Check if r_buf allocation success
|
assert(r_buf); // Check if r_buf allocation success
|
||||||
size_t r_bytes = 0;
|
size_t r_bytes = 0;
|
||||||
|
/* ATTENTION: The print and delay in the read task only for monitoring the data by human,
|
||||||
|
* Normally there shouldn't be any delays to ensure a short polling time,
|
||||||
|
* Otherwise the dma buffer will overflow and lead to the data lost */
|
||||||
while (1) {
|
while (1) {
|
||||||
/* Read i2s data */
|
/* Read i2s data */
|
||||||
if (i2s_channel_read(rx_chan, r_buf, EXAMPLE_BUFF_SIZE, &r_bytes, 1000) == ESP_OK) {
|
if (i2s_channel_read(rx_chan, r_buf, EXAMPLE_BUFF_SIZE, &r_bytes, 1000) == ESP_OK) {
|
||||||
|
Reference in New Issue
Block a user