2023-06-17 17:17:51 +02:00

32 lines
837 B
C

#pragma once
#include <stdint.h>
#include "esp_adc/adc_continuous.h"
#include "esp_adc/adc_cali.h"
typedef struct {
unsigned int channel;
unsigned int gain;
unsigned int real_gain;
} measurement_input;
typedef struct {
uint32_t *raw_volt;
uint32_t *amperes;
uint32_t amperes_f;
} measurements;
typedef struct {
adc_continuous_handle_t handle;
measurement_input* inputs;
int nb_inputs;
} measurements_ctxt;
#define ADC_STORE_BUFFER_SIZE 100 // in number of samples / nb of inputs
adc_continuous_handle_t init_measurement_inputs(measurement_input inputs[], int inputs_num);
void init_conv_driver(measurement_input inputs[], int inputs_num, adc_cali_handle_t* out);
void start_zero_cali(measurements_ctxt* ctxt, unsigned int nb_samples, uint32_t offsets[]);
int get_input_index_from_channel(adc_channel_t channel);