Files
2026-08-05 19:07:52 +08:00

63 lines
1.9 KiB
C

#ifndef _BSP_GP_ADC_H_
#define _BSP_GP_ADC_H_
#define FIFO_DEEP 16
#define GADC_FREQ_500K 16
#define GADC_FREQ_1M 8
#define GADC_FREQ_2M 4
#define GADC_FREQ_4M 2
#define GADC_FREQ_8M 1
#define GADC_REF_2_47V 1
#define GADC_REF_AVDD 2
typedef struct gadc_cache_struct
{
unsigned int value_2 : 10;
unsigned int chanel_2 : 4;
unsigned int : 2;
unsigned int value_1 : 10;
unsigned int chanel_1 : 4;
unsigned int : 2;
} gadc_cache_t;
void init_adc(uint8_t freq, uint8_t gadc_ref);
void adc_gpio_config(uint8_t cio);
int gadc_calibration_get(uint32_t *value);
#define IO_GPADC_CHANNEL0 21 /*gpio21*/
#define IO_GPADC_CHANNEL1 20 /*gpio20*/
#define IO_GPADC_CHANNEL2 19 /*gpio19*/
#define IO_GPADC_CHANNEL3 18 /*gpio18*/
#define IO_GPADC_CHANNEL4 0 /*gpio0 */
#define IO_GPADC_CHANNEL5 1 /*gpio1 */
#define IO_GPADC_CHANNEL6 4 /*gpio4 */
#define IO_GPADC_CHANNEL7 5 /*gpio5 */
#define IO_GPADC_CHANNEL8 0xff /*???????2/3 ???????3.3V????8?????2.2V*/
#define IO_GPADC_CHANNEL9 0xff
#define IO_GPADC_CHANNEL10 2 /*gpio2 */
#define IO_GPADC_CHANNEL11 3 /*gpio3 */
#define GPADC_MAIN_CTL_EX_SAMPLE_NUM_Pos 12
#define GPADC_MAIN_CTL_EX_SAMPLE_NUM_Msk (0xFul << GPADC_MAIN_CTL_EX_SAMPLE_NUM_Pos)
#define GPADC_MAIN_CTL_EX_TRIGGER_SEL_Pos 8
#define GPADC_MAIN_CTL_EX_TRIGGER_SEL_Msk (0x7ul << GPADC_MAIN_CTL_EX_TRIGGER_SEL_Pos)
#define GPADC_MAIN_CTL_EX_EDGE_SEL_Pos 4
#define GPADC_MAIN_CTL_EX_EDGE_SEL_Msk (0x3ul << GPADC_MAIN_CTL_EX_EDGE_SEL_Pos)
#define GPADC_MAIN_CTL_EDGE_SEL_Pos 3
#define GPADC_MAIN_CTL_EDGE_SEL_Msk (1ul << GPADC_MAIN_CTL_EDGE_SEL_Pos)
#define GPADC_MAIN_CTL_AUTO_SW_Pos 2
#define GPADC_MAIN_CTL_AUTO_SW_Msk (1ul << GPADC_MAIN_CTL_AUTO_SW_Pos)
#define GPADC_MAIN_CTL_DMAS_ON_Pos 1
#define GPADC_MAIN_CTL_DMAS_ON_Msk (1ul << GPADC_MAIN_CTL_DMAS_ON_Pos)
#define GPADC_MAIN_CTL_EN_Pos 0
#define GPADC_MAIN_CTL_EN_Msk (1ul << GPADC_MAIN_CTL_EN_Pos)
#endif