chore: sync local state
This commit is contained in:
51
main/main.c
51
main/main.c
@@ -35,20 +35,29 @@
|
||||
#include "driver/gpio.h"
|
||||
|
||||
// GPIO assignment
|
||||
#define LED_STRIP1_BLINK_GPIO 6
|
||||
#define LED_STRIP2_BLINK_GPIO 7
|
||||
#define LED_STRIP1_BLINK_GPIO 4
|
||||
#define LED_STRIP2_BLINK_GPIO 5
|
||||
|
||||
#define KEY1 GPIO_NUM_2
|
||||
#define KEY2 GPIO_NUM_3
|
||||
|
||||
#define SOUND_OUT1 GPIO_NUM_12
|
||||
#define SOUND_OUT2 GPIO_NUM_13
|
||||
|
||||
// Numbers of the LED in the strip
|
||||
#define LED_STRIP_LED_NUMBERS 56
|
||||
#define LED_STRIP_LED_NUMBERS 53
|
||||
// 10MHz resolution, 1 tick = 0.1us (led strip needs a high resolution)
|
||||
|
||||
//#define LED_STRIP_RMT_RES_HZ (10 * 1000 * 1000)
|
||||
// TEst to slower speed
|
||||
#define LED_STRIP_RMT_RES_HZ (10 * 1000 * 1000)
|
||||
|
||||
led_strip_handle_t led_strip1;
|
||||
led_strip_handle_t led_strip2;
|
||||
|
||||
bool key1_action = false;
|
||||
bool key2_action = false;
|
||||
|
||||
#define EXAMPLE_ESP_WIFI_SSID CONFIG_ESP_WIFI_SSID
|
||||
#define EXAMPLE_ESP_WIFI_PASS CONFIG_ESP_WIFI_PASSWORD
|
||||
#define EXAMPLE_MAX_STA_CONN CONFIG_ESP_MAX_STA_CONN
|
||||
@@ -200,8 +209,7 @@ void strip_init()
|
||||
}
|
||||
|
||||
|
||||
bool key1_action = false;
|
||||
bool key2_action = false;
|
||||
|
||||
|
||||
static void IRAM_ATTR isrButtonPress(void* arg)
|
||||
{
|
||||
@@ -232,12 +240,12 @@ void isr_init()
|
||||
// Настраиваем вывод для кнопки
|
||||
gpio_reset_pin(KEY1);
|
||||
gpio_set_direction(KEY1, GPIO_MODE_INPUT);
|
||||
gpio_set_pull_mode(KEY1, GPIO_FLOATING);
|
||||
gpio_set_pull_mode(KEY1, GPIO_PULLUP_ENABLE);
|
||||
|
||||
|
||||
gpio_reset_pin(KEY2);
|
||||
gpio_set_direction(KEY2, GPIO_MODE_INPUT);
|
||||
gpio_set_pull_mode(KEY2, GPIO_FLOATING);
|
||||
gpio_set_pull_mode(KEY2, GPIO_PULLUP_ENABLE);
|
||||
|
||||
// Регистрируем обработчик прерывания на нажатие кнопки
|
||||
gpio_isr_handler_add(KEY1, isrButtonPress, (void*) KEY1);
|
||||
@@ -291,6 +299,24 @@ void blink_strip(uint32_t nled, uint32_t count, uint32_t period)
|
||||
ESP_ERROR_CHECK(led_strip_clear(led_strip2));
|
||||
}
|
||||
|
||||
void sound_control_init()
|
||||
{
|
||||
gpio_reset_pin(SOUND_OUT1);
|
||||
gpio_set_direction(SOUND_OUT1, GPIO_MODE_OUTPUT);
|
||||
|
||||
gpio_reset_pin(SOUND_OUT2);
|
||||
gpio_set_direction(SOUND_OUT2, GPIO_MODE_OUTPUT);
|
||||
|
||||
}
|
||||
|
||||
void play_sound(uint32_t sound)
|
||||
{
|
||||
if (sound) gpio_set_level(SOUND_OUT1, 1); else gpio_set_level(SOUND_OUT2, 1);
|
||||
vTaskDelay(pdMS_TO_TICKS(80));
|
||||
if (sound) gpio_set_level(SOUND_OUT1, 0); else gpio_set_level(SOUND_OUT2, 0);
|
||||
vTaskDelay(pdMS_TO_TICKS(200));
|
||||
}
|
||||
|
||||
void app_main(void)
|
||||
{
|
||||
/*
|
||||
@@ -303,6 +329,7 @@ void app_main(void)
|
||||
|
||||
strip_init();
|
||||
isr_init();
|
||||
sound_control_init();
|
||||
// Initialize networking stack
|
||||
//ESP_ERROR_CHECK(esp_netif_init());
|
||||
|
||||
@@ -333,20 +360,26 @@ void app_main(void)
|
||||
if (key1_action){
|
||||
ESP_LOGI(TAG, "KEY1 Action");
|
||||
key1_action = false;
|
||||
play_sound(0);
|
||||
blink_strip(1,10,100);
|
||||
gpio_intr_enable(KEY1);
|
||||
gpio_intr_enable(KEY2);
|
||||
|
||||
|
||||
}
|
||||
|
||||
if (key2_action){
|
||||
ESP_LOGI(TAG, "KEY2 Action");
|
||||
key2_action = false;
|
||||
play_sound(1);
|
||||
blink_strip(2,10,100);
|
||||
gpio_intr_enable(KEY1);
|
||||
gpio_intr_enable(KEY2);
|
||||
|
||||
}
|
||||
|
||||
vTaskDelay(pdMS_TO_TICKS(10));
|
||||
// blink_strip(1,10,100);
|
||||
// blink_strip(2,10,100);
|
||||
// vTaskDelay(pdMS_TO_TICKS(1000));
|
||||
// vTaskDelay(pdMS_TO_TICKS(10));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user