| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 |
- /*
- * @File name : driver_saradc.h
- * @Author : Bluetrum IOT Team
- * @Date : 2023-02-15
- * @Description : This file contains all the functions prototypes for the SARADC library.
- *
- * Copyright (c) by Bluetrum, All Rights Reserved.
- */
- #ifndef _DRIVER_SARADC_H
- #define _DRIVER_SARADC_H
- #include "driver_com.h"
- /**
- * @brief ADC Channel
- */
- #define ADC_CHANNEL_PA2 0x00000001 // channel 0
- #define ADC_CHANNEL_PA3 0x00000002 // channel 1
- #define ADC_CHANNEL_PA4 0x00000004 // channel 2
- #define ADC_CHANNEL_PA5 0x00000008 // channel 3
- #define ADC_CHANNEL_PA6 0x00000010 // channel 4
- #define ADC_CHANNEL_PA7 0x00000020 // channel 5
- #define ADC_CHANNEL_PB0 0x00000040 // channel 6
- #define ADC_CHANNEL_PB1 0x00000080 // channel 7
- #define ADC_CHANNEL_PB3 0x00000100 // channel 8
- #define ADC_CHANNEL_PB4 0x00000200 // channel 9
- #define ADC_CHANNEL_PB8 0x00000400 // channel 10
- #define ADC_CHANNEL_VRTC 0x00000800 // channel 11
- #define ADC_CHANNEL_WK0 0x00001000 // channel 12
- #define ADC_CHANNEL_BG 0x00002000 // channel 13, please do not use this channel, abandon, can use VRTC channel
- #define ADC_CHANNEL_VBAT 0x00004000 // channel 14
- #define ADC_CHANNEL_VUSB 0x00008000 // channel 15
- #define ADC_CHANNEL_TSEN 0x00010000 // channel 15'
- /**
- * @brief SARADC ANALOG BIT
- */
- typedef enum {
- SARADC_ANALOG_BIT_VBAT = 0x01,
- SARADC_ANALOG_BIT_BG = 0x02,
- SARADC_ANALOG_BIT_WK0 = 0x04 ,
- SARADC_ANALOG_BIT_VRTC = 0x08,
- SARADC_ANALOG_BIT_VUSB = 0x10,
- } SARADC_ANALOG_BIT_TYPEDEF;
- /**
- * @brief SARADC Flag Definition
- */
- typedef enum {
- SARADC_IT_FINISHED = 0x01,
- } SARADC_IT_TYPEDEF;
- /**
- * @brief SARADC Analog Mode Enumeration
- */
- typedef enum {
- SARADC_MODE_NORMAL = 0x00000000,
- SARADC_MODE_TRIM = 0x00100000,
- } SARADC_MODE_TYPEDEF;
- /**
- * @brief SARADC Auto Enable Analog Enumeration
- */
- typedef enum {
- SARADC_AUTO_ENABLE_ANALOG_DIS = 0x00000000,
- SARADC_AUTO_ENABLE_ANALOG_EN = 0x00080000,
- } SARADC_AUTO_ENABLE_ANALOG_TYPEDEF;
- /**
- * @brief SARADC Auto Enable IO Analog Enumeration
- */
- typedef enum {
- SARADC_AUTO_ENABLE_ANALOG_IO_DIS = 0x00000000,
- SARADC_AUTO_ENABLE_ANALOG_IO_EN = 0x00040000,
- } SARADC_AUTO_ENABLE_ANALOG_IO_TYPEDEF;
- /**
- * @brief SARADC Internel Pullup Enumeration
- */
- typedef enum {
- SARADC_PULLUP_DIS = 0x00000000,
- SARADC_PULLUP_EN = 0x00000001,
- } SARADC_PULLUP_TYPEDEF;
- /**
- * @brief SARADC setup timing enumeration
- */
- typedef enum {
- SARADC_ST_0_CLK = 0x00000000,
- SARADC_ST_2_CLK = 0x00000001,
- SARADC_ST_4_CLK = 0x00000010,
- SARADC_ST_8_CLK = 0x00000011,
- } SARADC_SETUP_TYPEDEF;
- /**
- * @brief SARADC Base Init Structure
- */
- typedef struct {
- uint32_t baud;
- SARADC_MODE_TYPEDEF mode;
- SARADC_AUTO_ENABLE_ANALOG_TYPEDEF auto_analog;
- SARADC_AUTO_ENABLE_ANALOG_IO_TYPEDEF auto_analog_io;
- } saradc_base_init_typedef;
- /**
- * @brief SARADC Channel Init structure
- */
- typedef struct {
- uint32_t channel;
- FUNCTIONAL_STATE interrupt_en;
- SARADC_PULLUP_TYPEDEF pullup_en;
- SARADC_SETUP_TYPEDEF setup_time;
- } saradc_channel_init_typedef;
- void saradc_init(saradc_base_init_typedef* saradc_init_struct);
- uint8_t saradc_deinit(void);
- void saradc_channel_init(saradc_channel_init_typedef *saradc_channel_init_struct);
- void saradc_cmd(FUNCTIONAL_STATE state);
- void saradc_kick_start(uint32_t adc_ch);
- void saradc_set_baud(uint32_t baud);
- void saradc_pic_config(isr_t isr, int pr, SARADC_IT_TYPEDEF interrupt_type, FUNCTIONAL_STATE state);
- FLAG_STATE saradc_get_flag(SARADC_IT_TYPEDEF interrupt_type);
- FLAG_STATE saradc_get_channel_flag(uint32_t adc_ch);
- void saradc_clear_flag(SARADC_IT_TYPEDEF interrupt_type);
- uint32_t saradc_get_data(uint32_t adc_chx);
- #endif // _DRIVER_SARADC_H
|