#include "driver/gpio.h" #include "hal/gpio_types.h" #include "esp_log.h" #include "resistor_ranges.h" // set all required pins as output void set_resistor_gpio(resistor_range ranges[], int range_num){ uint64_t pin_mask = 0; for(int i = 0; i < range_num; i++){ pin_mask |= 1ULL << ranges[i].pin; } gpio_config_t conf = { .intr_type = GPIO_INTR_DISABLE, .mode = GPIO_MODE_OUTPUT, .pin_bit_mask = pin_mask, .pull_down_en = 0, .pull_up_en = 0, }; ESP_ERROR_CHECK(gpio_config(&conf)); } void activate_range(resistor_range ranges[], int index, int range_num){ for(int i = 0; i < range_num; i++){ ESP_LOGI("RES_RANGE", "%d %d", ranges[i].pin, i==index); ESP_ERROR_CHECK(gpio_set_level(ranges[i].pin, i == index)); } }