31 lines
815 B
C
31 lines
815 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;
|
|
} 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);
|