power-profiler-soft/main/resistor_ranges.c
2023-06-13 14:27:48 +02:00

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));
}
}