123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- #ifndef GENERALIO_ADC_GLOBAL_H_
- #define GENERALIO_ADC_GLOBAL_H_
- #include "main.h"
- typedef struct{
- volatile uint16_t *adc_buffer;
- volatile uint16_t prev_avg;
- volatile uint16_t last_avg;
- volatile uint16_t prev_raw;
- volatile uint16_t last_raw;
- volatile uint32_t EMA_of_Input;
- } ADCDataTypeDef_t;
- typedef struct {
- #ifdef ADC_1st
- uint16_t ADC_1st;
- #endif
- #ifdef ADC_2nd
- uint16_t ADC_2nd;
- #endif
- #ifdef ADC_3rd
- uint16_t ADC_3rd;
- #endif
- #ifdef ADC_4th
- uint16_t ADC_4th;
- #endif
- } adc_measures_t;
- extern volatile ADCDataTypeDef_t TIP;
- #ifdef USE_VIN
- extern volatile ADCDataTypeDef_t VIN;
- #endif
- #ifdef USE_NTC
- extern volatile ADCDataTypeDef_t NTC;
- #endif
- #ifdef USE_VREF
- extern volatile ADCDataTypeDef_t VREF;
- #endif
- typedef enum { ADC_Idle, ADC_Waiting, ADC_Sampling } ADC_Status_t;
- extern volatile ADC_Status_t ADC_Status;
- extern volatile uint16_t Tip_measures[ADC_BFSIZ];
- extern volatile adc_measures_t adc_measures[ADC_BFSIZ];
- uint16_t ADC_to_mV (uint16_t adc);
- void handle_ADC_Data(void);
- void DoAverage(volatile ADCDataTypeDef_t* InputData);
- void DEMA_Filter(ADCDataTypeDef_t* InputData);
- void ADC_Init(ADC_HandleTypeDef *adc);
- uint8_t ADC_Cal(void);
- void ADC_Stop_DMA(void);
- void ADC_Start_DMA(void);
- void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* _hadc);
- #endif
|