30 lines
704 B
C
30 lines
704 B
C
#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_ERROR_CHECK(gpio_set_level(ranges[i].pin, i == index));
|
|
}
|
|
} |