1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
| #include <stdio.h> #include "driver/gpio.h" #include "freertos/FreeRTOS.h" #include "esp_log.h"
static void gpio_isr_handle(void *args){ int io_num = (int)args; int level = gpio_get_level(GPIO_NUM_9); gpio_set_level(GPIO_NUM_9, !level);
}
void app_main(void) { gpio_config_t key_cfg = { .pin_bit_mask = 1ULL << 1, .mode = GPIO_MODE_INPUT, .pull_up_en = GPIO_PULLUP_ENABLE, .intr_type = GPIO_INTR_NEGEDGE, }; ESP_ERROR_CHECK(gpio_config(&key_cfg));
gpio_install_isr_service(ESP_INTR_FLAG_IRAM);
gpio_isr_handler_add(GPIO_NUM_1, gpio_isr_handle, (void *)GPIO_NUM_1); gpio_isr_handler_add(GPIO_NUM_0, gpio_isr_handle, (void *)GPIO_NUM_0);
gpio_config_t led_cfg = { .pin_bit_mask = 1ULL << 9, .mode = GPIO_MODE_OUTPUT, }; gpio_config(&led_cfg);
gpio_set_level(GPIO_NUM_9, 1); }
|