Files
RS485_T1_Transition/Source/include/apt32f102_adc.h
yeyangwen 5a726f7378 feat:修改设备类型
feat:修改为红外转发设备,将中弘网关协议转换为主机红外协议
2026-02-09 17:48:39 +08:00

236 lines
13 KiB
C

/*
******************************************************************************
* @file apt32f102_adc.h
* @author APT AE Team
* @version V1.13
* @date 2021/06/21
******************************************************************************
*THIS SOFTWARE WHICH IS FOR ILLUSTRATIVE PURPOSES ONLY WHICH PROVIDES
*CUSTOMER WITH CODING INFORMATION REGARDING THEIR PRODUCTS.
*APT CHIP SHALL NOT BE HELD RESPONSIBILITY ADN LIABILITY FOR ANY DIRECT,
*INDIRECT DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT OF
*SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION
*CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.AND APT CHIP RESERVES
*THE RIGHT TO MAKE CHANGES IN THE SOFTWARE WITHOUT NOTIFICATION
******************************************************************************
*/
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef _apt32f102_adc_H
#define _apt32f102_adc_H
/* Includes ------------------------------------------------------------------*/
#include "apt32f102.h"
/******************************************************************************
************************* ADC12 Registers reset value ************************
******************************************************************************/
#define ADC_ECR_RST (0x00000000ul) /**< ECR reset value */
#define ADC_DCR_RST (0x00000000ul) /**< DCR reset value */
#define ADC_PMSR_RST (0x00000000ul) /**< PMSR reset value */
#define ADC_CR_RST (0x80000000ul) /**< CR reset value */
#define ADC_MR_RST (0x00000000ul) /**< MR reset value */
#define ADC_CSR_RST (0x00000000ul) /**< CSR reset value */
#define ADC_SR_RST (0x00000000ul) /**< SR reset value */
#define ADC_IER_RST (0x00000000ul) /**< IER reset value */
#define ADC_IDR_RST (0x00000000ul) /**< IDR reset value */
#define ADC_IMR_RST (0x00000000ul) /**< IMR reset value */
#define ADC_SEQx_RST (0x00000000ul) /**< SEQx reset value */
#define ADC_DR_RST (0x00000000ul) /**< DR reset value */
#define ADC_CMP0_RST (0x00000000ul) /**< CMP0 reset value */
#define ADC_CMP1_RST (0x00000000ul) /**< CMP1 reset value */
/**
* @brief ADC12 Control register
*/
typedef enum
{
ADC12_SWRST = ((CSP_REGISTER_T)(0x01ul << 0)), /**< Software Reset */
ADC12_ADCEN = ((CSP_REGISTER_T)(0x01ul << 1)), /**< ADC Enable */
ADC12_ADCDIS = ((CSP_REGISTER_T)(0x01ul << 2)), /**< ADC Disable */
ADC12_START = ((CSP_REGISTER_T)(0x01ul << 3)), /**< Start Conversion */
ADC12_STOP = ((CSP_REGISTER_T)(0x01ul << 4)), /**< Stop Conversion */
ADC12_SWTRG = ((CSP_REGISTER_T)(0x01ul << 5)), /**< Stop Conversion */
ADC12_AVGEN = ((CSP_REGISTER_T)(0x01ul << 12)), /**< Conversion data get average */
ADC12_AVGDIS = ((CSP_REGISTER_T)(0x00ul << 12)), /**< Conversion data get last one */
}ADC12_Control_TypeDef;
/**
* @brief ADC12 IMR register
*/
typedef enum
{
//CSR SR, IER, IDR, IMR Registers
ADC12_EOC = ((CSP_REGISTER_T)(0x01ul << 0)), /**< End Of Conversion */
ADC12_READY = ((CSP_REGISTER_T)(0x01ul << 1)), /**< Ready to Start */
ADC12_OVR = ((CSP_REGISTER_T)(0x01ul << 2)), /**< Over Run */
ADC12_CMP0H = ((CSP_REGISTER_T)(0x01ul << 4)), /**< Higher than CMP1 */
ADC12_CMP0L = ((CSP_REGISTER_T)(0x01ul << 5)), /**< Lower than CMP1 */
ADC12_CMP1H = ((CSP_REGISTER_T)(0x01ul << 6)), /**< Higher than CMP2 */
ADC12_CMP1L = ((CSP_REGISTER_T)(0x01ul << 7)), /**< Lower than CMP2 */
ADC12_SEQ_END0 = ((CSP_REGISTER_T)(0x01ul << 16)), /**< SEQ0 Convert end */
ADC12_SEQ_END1 = ((CSP_REGISTER_T)(0x01ul << 17)), /**< SEQ1 Convert end */
ADC12_SEQ_END2 = ((CSP_REGISTER_T)(0x01ul << 18)), /**< SEQ2 Convert end */
ADC12_SEQ_END3 = ((CSP_REGISTER_T)(0x01ul << 19)), /**< SEQ3 Convert end */
ADC12_SEQ_END4 = ((CSP_REGISTER_T)(0x01ul << 20)), /**< SEQ4 Convert end */
ADC12_SEQ_END5 = ((CSP_REGISTER_T)(0x01ul << 21)), /**< SEQ5 Convert end */
ADC12_SEQ_END6 = ((CSP_REGISTER_T)(0x01ul << 22)), /**< SEQ6 Convert end */
ADC12_SEQ_END7 = ((CSP_REGISTER_T)(0x01ul << 23)), /**< SEQ7 Convert end */
ADC12_SEQ_END8 = ((CSP_REGISTER_T)(0x01ul << 24)), /**< SEQ8 Convert end */
ADC12_SEQ_END9 = ((CSP_REGISTER_T)(0x01ul << 25)), /**< SEQ9 Convert end */
ADC12_SEQ_END10 = ((CSP_REGISTER_T)(0x01ul << 26)), /**< SEQ10 Convert end */
ADC12_SEQ_END11 = ((CSP_REGISTER_T)(0x01ul << 27)), /**< SEQ11 Convert end */
ADC12_SEQ_END12 = ((CSP_REGISTER_T)(0x01ul << 28)), /**< SEQ12 Convert end */
ADC12_SEQ_END13 = ((CSP_REGISTER_T)(0x01ul << 29)), /**< SEQ13 Convert end */
ADC12_SEQ_END14 = ((CSP_REGISTER_T)(0x01ul << 30)), /**< SEQ14 Convert end */
ADC12_SEQ_END15 = ((CSP_REGISTER_T)(0x01ul << 31)), /**< SEQ15 Convert end */
/* SR Register Only */
ADC12_ADCENS = ((CSP_REGISTER_T)(0x01ul << 8)), /**< ADC Enable Status */
ADC12_CTCVS = ((CSP_REGISTER_T)(0x01ul << 9)) /**< Continuous Conversion Status*/
}
ADC12_IMR_TypeDef;
/**
* @brief ADC12 CLK ENABLE AND DISABLE
*/
typedef enum
{
ADC_CLK_CR = ((CSP_REGISTER_T)(0x01ul << 1)), /**< ADC Clock */
ADC12_IPIDCODE_MASK = ((CSP_REGISTER_T)(0x3FFFFFFul << 4)), /**< ADC IPIDCODE mask */
ADC_DEBUG_MODE = ((CSP_REGISTER_T)(0x01ul << 31)) /**< Debug Mode Enable */
}
ADC12_CLK_TypeDef;
/**
* @brief ADC12 Bit slection
*/
typedef enum
{
ADC12_12BIT = 1, /**< 12bit mode */
ADC12_10BIT = 0, /**< 10bit mode */
ADC12_10BITor12BIT = ((CSP_REGISTER_T)(0x01ul<<31))
}ADC12_10bitor12bit_TypeDef;
/**
* @brief ADC12 Convertion mode
*/
typedef enum
{
One_shot_mode = 0,
Continuous_mode = 1,
CONTCV = (CSP_REGISTER_T)0x01<<31 //Continuous Conversion 0: One shot mode. 1: Continuous mode.
}ADC12_ConverMode_TypeDef;
/**
* @brief ADC12 NBRCMPx selection
*/
typedef enum
{
NBRCMP0_TypeDef = 0,
NBRCMP1_TypeDef = 1
}
ADC12_NBRCMPx_TypeDef;
/**
* @brief ADC12 NBRCMPx_HorL selection
*/
typedef enum
{
NBRCMPX_L_TypeDef = 0,
NBRCMPX_H_TypeDef = 1
}
ADC12_NBRCMPx_HorL_TypeDef;
/**
* @brief ADC12 SEQx register
*/
typedef enum
{
ADC12_ADCIN0 = (CSP_REGISTER_T)(0x0ul), /**< ADC Analog Input 0 */
ADC12_ADCIN1 = (CSP_REGISTER_T)(0x1ul), /**< ADC Analog Input 1 */
ADC12_ADCIN2 = (CSP_REGISTER_T)(0x2ul), /**< ADC Analog Input 2 */
ADC12_ADCIN3 = (CSP_REGISTER_T)(0x3ul), /**< ADC Analog Input 3 */
ADC12_ADCIN4 = (CSP_REGISTER_T)(0x4ul), /**< ADC Analog Input 4 */
ADC12_ADCIN5 = (CSP_REGISTER_T)(0x5ul), /**< ADC Analog Input 5 */
ADC12_ADCIN6 = (CSP_REGISTER_T)(0x6ul), /**< ADC Analog Input 6 */
ADC12_ADCIN7 = (CSP_REGISTER_T)(0x7ul), /**< ADC Analog Input 7 */
ADC12_ADCIN8 = (CSP_REGISTER_T)(0x8ul), /**< ADC Analog Input 8 */
ADC12_ADCIN9 = (CSP_REGISTER_T)(0x9ul), /**< ADC Analog Input 9 */
ADC12_ADCIN10 = (CSP_REGISTER_T)(0x0Aul), /**< ADC Analog Input 10 */
ADC12_ADCIN11 = (CSP_REGISTER_T)(0x0Bul), /**< ADC Analog Input 11 */
ADC12_ADCIN12 = (CSP_REGISTER_T)(0x0Cul), /**< ADC Analog Input 12 */
ADC12_ADCIN13 = (CSP_REGISTER_T)(0x0Dul), /**< ADC Analog Input 13 */
ADC12_ADCIN14 = (CSP_REGISTER_T)(0x0Eul), /**< ADC Analog Input 14 */
ADC12_ADCIN15 = (CSP_REGISTER_T)(0x0Ful), /**< ADC Analog Input 15 */
//ADC12_ADCIN16 = (CSP_REGISTER_T)(0x10ul), /**< ADC Analog Input 16 */
//ADC12_ADCIN17 = (CSP_REGISTER_T)(0x11ul), /**< ADC Analog Input 17 */
//ADC12_ADCIN18 = (CSP_REGISTER_T)(0x12ul), /**< ADC Analog Input 18 */
//ADC12_ADCIN19 = (CSP_REGISTER_T)(0x13ul), /**< ADC Analog Input 19 */
//ADC12_ADCIN20 = (CSP_REGISTER_T)(0x14ul), /**< ADC Analog Input 20 */
//ADC12_ADCIN21 = (CSP_REGISTER_T)(0x15ul), /**< ADC Analog Input 21 */
//ADC12_ADCIN22 = (CSP_REGISTER_T)(0x16ul), /**< ADC Analog Input 22 */
//ADC12_ADCIN23 = (CSP_REGISTER_T)(0x17ul), /**< ADC Analog Input 23 */
//ADC12_ADCIN24 = (CSP_REGISTER_T)(0x18ul), /**< ADC Analog Input 24 */
//ADC12_ADCIN25 = (CSP_REGISTER_T)(0x19ul), /**< ADC Analog Input 25 */
//ADC12_ADCIN26 = (CSP_REGISTER_T)(0x1Aul), /**< ADC Analog Input 26 */
//ADC12_ADCIN27 = (CSP_REGISTER_T)(0x1Bul) /**< ADC Analog Input 27 */
ADC12_INTVREF = (CSP_REGISTER_T)(0x1Cul),
ADC12_DIV4_VDD = (CSP_REGISTER_T)(0x1Dul),
ADC12_VSS = (CSP_REGISTER_T)(0x1Eul),
}
ADC12_InputSet_TypeDef;
/**
* @brief ADC12 Convertion repeat number
*/
typedef enum
{
ADC12_CV_RepeatNum1 = (CSP_REGISTER_T)(0x0ul<<8)|(0x0ul<<13), /**< ADC Convertion number 1 */
ADC12_CV_RepeatNum2 = (CSP_REGISTER_T)(0x1ul<<8)|(0x1ul<<13), /**< ADC Convertion number 2 */
ADC12_CV_RepeatNum4 = (CSP_REGISTER_T)(0x2ul<<8)|(0x2ul<<13), /**< ADC Convertion number 4 */
ADC12_CV_RepeatNum8 = (CSP_REGISTER_T)(0x3ul<<8)|(0x3ul<<13), /**< ADC Convertion number 8 */
ADC12_CV_RepeatNum16 = (CSP_REGISTER_T)(0x4ul<<8)|(0x4ul<<13), /**< ADC Convertion number 16 */
ADC12_CV_RepeatNum32 = (CSP_REGISTER_T)(0x5ul<<8)|(0x5ul<<13), /**< ADC Convertion number 32 */
ADC12_CV_RepeatNum64 = (CSP_REGISTER_T)(0x6ul<<8)|(0x6ul<<13), /**< ADC Convertion number 64 */
ADC12_CV_RepeatNum128 = (CSP_REGISTER_T)(0x7ul<<8)|(0x7ul<<13), /**< ADC Convertion number 128 */
ADC12_CV_RepeatNum256 = (CSP_REGISTER_T)(0x8ul<<8)|(0x8ul<<13), /**< ADC Convertion number 256 */
ADC12_CV_RepeatNum512 = (CSP_REGISTER_T)(0x9ul<<8)|(0x9ul<<13) /**< ADC Convertion number 512 */
}ADC12_CV_RepeatNum_TypeDef;
/**
* @brief ADC12 VREFP VREFN Selecte
*/
typedef enum
{
ADC12_VREFP_VDD_VREFN_VSS = 0,
ADC12_VREFP_EXIT_VREFN_VSS = 1,
ADC12_VREFP_FVR2048_VREFN_VSS = 2,
ADC12_VREFP_FVR4096_VREFN_VSS = 3,
//ADC12_VREFP_INTVREF0750_VREFN_VSS = 4,
ADC12_VREFP_INTVREF1000_VREFN_VSS = 5,
ADC12_VREFP_VDD_VREFN_EXIT = 6,
ADC12_VREFP_EXIT_VREFN_EXIT = 7,
ADC12_VREFP_FVR2048_VREFN_EXIT = 8,
ADC12_VREFP_FVR4096_VREFN_EXIT = 9,
//ADC12_VREFP_INTVREF0750_VREFN_EXIT = 10,
ADC12_VREFP_INTVREF1000_VREFN_EXIT = 11
}ADC12_VREFP_VREFN_Selected_TypeDef;
extern void ADC12_RESET_VALUE(void);
extern void ADC12_Control(ADC12_Control_TypeDef ADC12_Control_x );
extern void ADC12_ConfigInterrupt_CMD( ADC12_IMR_TypeDef ADC_IMR_X , FunctionalStatus NewState);
extern uint8_t ADC12_Read_IntEnStatus(ADC12_IMR_TypeDef EnStatus_bit);
extern void ADC12_CLK_CMD(ADC12_CLK_TypeDef ADC_CLK_CMD , FunctionalStatus NewState);
extern void ADC12_Software_Reset(void);
extern void ADC12_CMD(FunctionalStatus NewState);
extern void ADC12_ready_wait(void);
extern void ADC12_EOC_wait(void);
extern void ADC12_SEQEND_wait(U8_T val);
extern U16_T ADC12_DATA_OUPUT(U16_T Data_index );
extern void ADC12_Configure_Mode(ADC12_10bitor12bit_TypeDef ADC12_BIT_SELECTED , ADC12_ConverMode_TypeDef ADC12_ConverMode , U8_T ADC12_PRI, U8_T adc12_SHR , U8_T ADC12_DIV , U8_T NumConver );
extern void ADC12_Configure_VREF_Selecte(ADC12_VREFP_VREFN_Selected_TypeDef ADC12_VREFP_X_VREFN_X );
extern void ADC12_CompareFunction_set(U8_T ConverNum_CM0 , U8_T ConverNum_CM1 , U16_T CMP0_data , U16_T CMP1_data );
extern void ADC12_ConversionChannel_Config(ADC12_InputSet_TypeDef ADC12_ADCINX ,
ADC12_CV_RepeatNum_TypeDef CV_RepeatTime, ADC12_Control_TypeDef AVG_Set, U8_T SEQx);
extern U8_T ADC12_Compare_statue(ADC12_NBRCMPx_TypeDef ADC12_NBRCMPx, ADC12_NBRCMPx_HorL_TypeDef ADC12_NBRCMPx_HorL);
extern void ADC_Int_Enable(void);
extern void ADC_Int_Disable(void);
extern void ADC12_CONFIG(void);
extern void adc12_SHR_SET(U8_T adc12_SHR);
#endif /**< apt32f102_adc_H */
/******************* (C) COPYRIGHT 2020 APT Chip *****END OF FILE****/