Add EzTune to the settings.yaml
[inav.git] / src / main / drivers / adc.h
blob5ba4b999da02d066d8fa599b6a8a2472a59681bb
1 /*
2 * This file is part of Cleanflight.
4 * Cleanflight is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation, either version 3 of the License, or
7 * (at your option) any later version.
9 * Cleanflight is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
14 * You should have received a copy of the GNU General Public License
15 * along with Cleanflight. If not, see <http://www.gnu.org/licenses/>.
18 #pragma once
20 #include "drivers/io_types.h"
22 typedef enum {
23 ADC_BATTERY = 0,
24 ADC_RSSI = 1,
25 ADC_CURRENT = 2,
26 ADC_AIRSPEED = 3,
27 ADC_FUNCTION_COUNT
28 } adcFunction_e;
30 typedef enum {
31 ADC_CHN_NONE = 0,
32 ADC_CHN_1 = 1,
33 ADC_CHN_2,
34 ADC_CHN_3,
35 ADC_CHN_4,
36 ADC_CHN_MAX = ADC_CHN_4,
37 ADC_CHN_COUNT
38 } adcChannel_e;
40 typedef struct drv_adc_config_s {
41 uint8_t adcFunctionChannel[ADC_FUNCTION_COUNT];
42 } drv_adc_config_t;
44 void adcInit(drv_adc_config_t *init);
45 uint16_t adcGetChannel(uint8_t channel);
46 bool adcIsFunctionAssigned(uint8_t function);
47 int adcGetFunctionChannelAllocation(uint8_t function);
49 #if defined(USE_ADC_AVERAGING)
50 #if !defined(ADC_AVERAGE_N_SAMPLES)
51 #define ADC_AVERAGE_N_SAMPLES 20
52 #endif
53 #else
54 #define ADC_AVERAGE_N_SAMPLES 1
55 #endif