diff options
| author | Sadeep Madurange <sadeep@asciimx.com> | 2024-09-07 22:09:43 +0800 |
|---|---|---|
| committer | Sadeep Madurange <sadeep@asciimx.com> | 2024-09-07 22:09:43 +0800 |
| commit | 6ce63a6e692aecf9aa39728374bcf361221e46da (patch) | |
| tree | 4ad1183345bcbee7321cb1e6dd56ff12ced2afc6 /main | |
| parent | a190430b739407c8690a17e8ca4a4d2668101fda (diff) | |
| download | esp32-inmp441-driver-6ce63a6e692aecf9aa39728374bcf361221e46da.tar.gz | |
Reorganize directories.
Diffstat (limited to 'main')
| -rw-r--r-- | main/CMakeLists.txt | 4 | ||||
| -rw-r--r-- | main/main.c | 89 | ||||
| -rw-r--r-- | main/wifi.c | 97 | ||||
| -rw-r--r-- | main/wifi.h | 6 |
4 files changed, 0 insertions, 196 deletions
diff --git a/main/CMakeLists.txt b/main/CMakeLists.txt deleted file mode 100644 index 5f86806..0000000 --- a/main/CMakeLists.txt +++ /dev/null @@ -1,4 +0,0 @@ -set(SRC "main.c" "wifi.c") - -idf_component_register(SRCS ${SRC} - INCLUDE_DIRS ".") diff --git a/main/main.c b/main/main.c deleted file mode 100644 index e0f3e05..0000000 --- a/main/main.c +++ /dev/null @@ -1,89 +0,0 @@ -#include <freertos/FreeRTOS.h> -#include <freertos/task.h> - -#include <esp_log.h> -#include <esp_event.h> -#include <esp_netif.h> -#include <nvs_flash.h> - -#include <driver/gpio.h> -#include <driver/i2s_std.h> - -#include "wifi.h" - -#define BUFLEN 1024 -#define SAMP_RATE 8000 - -#define I2S_WS GPIO_NUM_4 -#define I2S_SD GPIO_NUM_1 -#define I2S_SCK GPIO_NUM_5 - -static i2s_chan_handle_t chan; - -static void i2s_read_task(void *args) -{ - size_t n; - char *buf = calloc(1, BUFLEN); - - ESP_ERROR_CHECK(i2s_channel_enable(chan)); - - for (;;) { - if (i2s_channel_read(chan, buf, BUFLEN, &n, 1000) == ESP_OK) { - if (n > 0) { - // todo: copy to a separate buffer and send over udp - // esp_mqtt_client_publish(client, "snd", buf, n, 1, 0); - } - } else - printf("Read Task: i2s read failed\n"); - } - - free(buf); - vTaskDelete(NULL); -} - -static inline void i2s_init(void) -{ - i2s_chan_config_t chan_cfg = I2S_CHANNEL_DEFAULT_CONFIG( - I2S_NUM_AUTO, - I2S_ROLE_MASTER); - - ESP_ERROR_CHECK(i2s_new_channel(&chan_cfg, NULL, &chan)); - - i2s_std_config_t std_cfg = { - .clk_cfg = I2S_STD_CLK_DEFAULT_CONFIG(SAMP_RATE), - .slot_cfg = I2S_STD_PHILIPS_SLOT_DEFAULT_CONFIG( - I2S_DATA_BIT_WIDTH_24BIT, - I2S_SLOT_MODE_MONO), - .gpio_cfg = { - .ws = I2S_WS, - .din = I2S_SD, - .bclk = I2S_SCK, - .dout = I2S_GPIO_UNUSED, - .mclk = I2S_GPIO_UNUSED, - .invert_flags = { - .ws_inv = false, - .bclk_inv = false, - .mclk_inv = false - } - } - }; - - std_cfg.clk_cfg.mclk_multiple = I2S_MCLK_MULTIPLE_384; - - ESP_ERROR_CHECK(i2s_channel_init_std_mode(chan, &std_cfg)); -} - -void app_main(void) -{ - ESP_ERROR_CHECK(nvs_flash_init()); - ESP_ERROR_CHECK(esp_event_loop_create_default()); - - wifi_connect(); - - i2s_init(); - xTaskCreate(i2s_read_task, "i2s_read_task", 4096, NULL, 5, NULL); - - for (;;) - vTaskDelay(500 / portTICK_PERIOD_MS); -} - diff --git a/main/wifi.c b/main/wifi.c deleted file mode 100644 index 9489a72..0000000 --- a/main/wifi.c +++ /dev/null @@ -1,97 +0,0 @@ -#include <freertos/FreeRTOS.h> -#include <freertos/event_groups.h> -#include <freertos/task.h> - -#include <esp_log.h> -#include <esp_wifi.h> - -#include "wifi.h" - -#define WIFI_MAX_RETRY 5 - -#define WIFI_CONNECTED_BIT BIT0 -#define WIFI_ERROR_BIT BIT1 - -static const char* TAG = "wifi"; - -static int wifi_retry_num = 0; -static EventGroupHandle_t wifi_evt_group; - -static void wifi_evt_handler( - void *arg, - esp_event_base_t eb, - int32_t id, - void *data) -{ - if (eb == WIFI_EVENT && id == WIFI_EVENT_STA_DISCONNECTED) { - if (wifi_retry_num < WIFI_MAX_RETRY) { - esp_wifi_connect(); - wifi_retry_num++; - ESP_LOGI(TAG, "trying to connect to AP..."); - } else { - ESP_LOGE(TAG,"connection to AP failed"); - xEventGroupSetBits(wifi_evt_group, WIFI_ERROR_BIT); - } - } else if (eb == IP_EVENT && id == IP_EVENT_STA_GOT_IP) { - ip_event_got_ip_t* evt = (ip_event_got_ip_t*) data; - ESP_LOGI( - TAG, - "connected to AP with ip:" IPSTR, - IP2STR(&evt->ip_info.ip)); - - wifi_retry_num = 0; - xEventGroupSetBits(wifi_evt_group, WIFI_CONNECTED_BIT); - } -} - -void wifi_connect(void) -{ - ESP_ERROR_CHECK(esp_netif_init()); - - wifi_evt_group = xEventGroupCreate(); - esp_netif_create_default_wifi_sta(); - - wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT(); - ESP_ERROR_CHECK(esp_wifi_init(&cfg)); - - esp_event_handler_instance_t any_id; - ESP_ERROR_CHECK( - esp_event_handler_instance_register( - WIFI_EVENT, - ESP_EVENT_ANY_ID, - &wifi_evt_handler, - NULL, - &any_id)); - - esp_event_handler_instance_t got_ip; - ESP_ERROR_CHECK( - esp_event_handler_instance_register( - IP_EVENT, - IP_EVENT_STA_GOT_IP, - &wifi_evt_handler, - NULL, - &got_ip)); - - wifi_config_t wifi_config = { - .sta = { - .ssid = CONFIG_WIFI_SSID, - .password = CONFIG_WIFI_PASS, - .threshold.authmode = WIFI_AUTH_WPA2_PSK - }, - }; - - ESP_ERROR_CHECK(esp_wifi_set_mode(WIFI_MODE_STA)); - ESP_ERROR_CHECK(esp_wifi_set_config(WIFI_IF_STA, &wifi_config)); - - ESP_ERROR_CHECK(esp_wifi_start()); - ESP_ERROR_CHECK(esp_wifi_connect()); - - xEventGroupWaitBits( - wifi_evt_group, - WIFI_CONNECTED_BIT | WIFI_ERROR_BIT, - pdFALSE, - pdFALSE, - portMAX_DELAY); - - ESP_LOGI(TAG, "wifi station initialized"); -} diff --git a/main/wifi.h b/main/wifi.h deleted file mode 100644 index e526eef..0000000 --- a/main/wifi.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef WIFI_H -#define WIFI_H - -void wifi_connect(void); - -#endif /* WIFI_H */ |
