#define LOG_LOCAL_LEVEL ESP_LOG_VERBOSE
//#define CONFIG_LOG_MAXIMUM_LEVEL ESP_LOG_VERBOSE
#include <stdio.h>
#include "esp_log.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "driver/gpio.h"
static const char* TAG = "Main module";
void InitOneAtTimeGPIO(){
gpio_reset_pin(GPIO_NUM_4);
gpio_reset_pin(GPIO_NUM_5);
//gpio_reset_pin(GPIO_NUM_15);
//gpio_reset_pin(GPIO_NUM_16);
gpio_set_direction(GPIO_NUM_4, GPIO_MODE_INPUT);
gpio_set_direction(GPIO_NUM_5, GPIO_MODE_INPUT);
//gpio_set_direction(GPIO_NUM_15, GPIO_MODE_OUTPUT);
//gpio_set_direction(GPIO_NUM_16, GPIO_MODE_OUTPUT);
gpio_set_pull_mode(GPIO_NUM_4, GPIO_PULLDOWN_ONLY);
gpio_set_pull_mode(GPIO_NUM_5, GPIO_PULLUP_ONLY);
//gpio_set_drive_capability(GPIO_NUM_15,GPIO_DRIVE_CAP_0);
//gpio_set_drive_capability(GPIO_NUM_1,GPIO_DRIVE_CAP_0);
}
void InitMutipleGPIO(){
gpio_config_t pinOut = {
.pin_bit_mask = (1<<GPIO_NUM_15)|(1<<GPIO_NUM_16),
.mode = GPIO_MODE_OUTPUT,
.pull_up_en = GPIO_PULLUP_DISABLE,
.pull_down_en = GPIO_PULLDOWN_DISABLE,
.intr_type = GPIO_INTR_DISABLE
};
gpio_set_level(GPIO_NUM_15,1);
gpio_config(&pinOut);
gpio_set_drive_capability(GPIO_NUM_15,GPIO_DRIVE_CAP_0);
gpio_set_drive_capability(GPIO_NUM_16,GPIO_DRIVE_CAP_0);
gpio_set_level(GPIO_NUM_16,0);
}
void app_main() {
esp_log_level_set("*", ESP_LOG_VERBOSE);
printf("GPIO Lessen\n");
InitOneAtTimeGPIO();
InitMutipleGPIO();
while (true) {
// vTaskDelay(1000 / portTICK_PERIOD_MS);
if(gpio_get_level(GPIO_NUM_4) != 0){
gpio_set_level(GPIO_NUM_15,0);
ESP_LOGI (TAG, "GPIO_NUM_15 = %d",0);
ESP_LOGW (TAG, "GPIO_NUM_15 = %d",0);
ESP_LOGE (TAG, "GPIO_NUM_15 = %d",0);
ESP_LOGD (TAG, "GPIO_NUM_15 = %d",0);
ESP_LOGV (TAG, "GPIO_NUM_15 = %d",0);
}
else if(gpio_get_level(GPIO_NUM_5) == 0){
gpio_set_level(GPIO_NUM_16,1);
}
else {
gpio_set_level(GPIO_NUM_15,1);
gpio_set_level(GPIO_NUM_16,0);
}
}
}