CIU32_L051_M307R/Peripheral/CIU32L051_Lib/Include/ciu32l051_std_comp.h

419 lines
13 KiB
C
Raw Normal View History

/************************************************************************************************/
/**
* @file ciu32l051_std_comp.h
* @author MCU Ecosystem Development Team
* @brief COMP STD<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>
* <EFBFBD>COMP<EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD>STD<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ķ<EFBFBD><EFBFBD>
*
*
**************************************************************************************************
* @attention
* Copyright (c) CEC Huada Electronic Design Co.,Ltd. All rights reserved.
*
**************************************************************************************************
*/
/* <20><><EFBFBD><EFBFBD>ͷ<EFBFBD>ļ<EFBFBD><C4BC>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD> */
#ifndef CIU32L051_STD_COMP_H
#define CIU32L051_STD_COMP_H
/************************************************************************************************/
/**
* @addtogroup CIU32L051_STD_Driver
* @{
*/
/**
* @defgroup COMP COMP
* @brief <EFBFBD>Ƚ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>STD<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @{
*/
/************************************************************************************************/
#ifdef __cplusplus
extern "C" {
#endif
/*------------------------------------------includes--------------------------------------------*/
#include "ciu32l051_std_common.h"
/*-----------------------------------------type define------------------------------------------*/
/************************************************************************************************/
/**
* @defgroup COMP_Types COMP Types
* @brief COMP<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͷ<EFBFBD><EFBFBD><EFBFBD>
* @{
*/
/************************************************************************************************/
/**
* @brief COMP<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ý<EFBFBD><EFBFBD><EFBFBD>
*/
typedef struct
{
uint32_t inpsel; /**< COMP<4D><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
@arg COMP_INPSEL_IO1 ... */
uint32_t inmsel; /**< COMP<4D><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
@arg COMP_INMSEL_VBGR ... */
uint32_t speed; /**< COMP<4D><50>Ӧ<EFBFBD>ٶȣ<D9B6><C8A3><EFBFBD>Ӧ<EFBFBD>ٶ<EFBFBD>Խ<EFBFBD><EFBFBD><ECA3AC><EFBFBD><EFBFBD>Խ<EFBFBD>󡣿<EFBFBD><F3A1A3BF><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD>١<EFBFBD><D9A1><EFBFBD><EFBFBD>١<EFBFBD><D9A1><EFBFBD><EFBFBD>١<EFBFBD><D9A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ<C4A3><CABD>
@arg COMP_VERYLOWSPEED ... */
uint32_t hyst; /**< COMP<4D><50><EFBFBD><EFBFBD>ģʽ<C4A3><CABD><EFBFBD><EFBFBD><EFBFBD>Խ<EFBFBD>ֹ<EFBFBD><D6B9><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ó<EFBFBD><C3B3>͵<EFBFBD>ѹΪ10mV<6D><56>20mV<6D><56>30mV<6D><56>
@arg COMP_HYST_NONE ... */
uint32_t outpol; /**< COMP<4D><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԣ<EFBFBD><D4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0A1B1>
@arg COMP_OUTPOL_INVERTED ... */
} std_comp_init_t;
/**
* @}
*/
/*--------------------------------------------define--------------------------------------------*/
/************************************************************************************************/
/**
* @defgroup COMP_Constants COMP Constants
* @brief COMP<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @{
*
*/
/************************************************************************************************/
/* <20>Ƚ<EFBFBD><C8BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
#define COMP_INPSEL_IO1 COMP_CSR_INP_IO1 /**< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> COMP1 = PC4, COMP2 = PA1 */
#define COMP_INPSEL_IO2 COMP_CSR_INP_IO2 /**< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> COMP1 = PA5, COMP2 = PD5 */
#define COMP_INPSEL_IO3 COMP_CSR_INP_IO3 /**< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> COMP1 = PB2 */
#define COMP_INPSEL_IO4 COMP_CSR_INP_IO4 /**< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> COMP1 = PA8 */
/* <20>Ƚ<EFBFBD><C8BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
#define COMP_INMSEL_VBGR COMP_CSR_INM_VBGR /**< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> VBGR */
#define COMP_INMSEL_6BIT_DAC COMP_CSR_INM_6BIT_DAC /**< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 6BIT_DAC */
#define COMP_INMSEL_IO1 COMP_CSR_INM_IO1 /**< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> COMP1 = PC3, COMP2 = PA2 */
#define COMP_INMSEL_IO2 COMP_CSR_INM_IO2 /**< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> COMP1 = PA4, COMP2 = PD4 */
#define COMP_INMSEL_IO3 COMP_CSR_INM_IO3 /**< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> COMP1 = PB1 */
#define COMP_INMSEL_IO4 COMP_CSR_INM_IO4 /**< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> COMP1 = PA9 */
/* <20>Ƚ<EFBFBD><C8BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽѡ<CABD>񣬿<EFBFBD><F1A3ACBF><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD>񴰿ڱȽ<DAB1><C8BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
#define COMP_INPMODE_EACH_INPUT (0x00000000U) /**< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɸ<EFBFBD><C9B8><EFBFBD>inpsel<65><6C><EFBFBD><EFBFBD> */
#define COMP_INPMODE_COMMON_INPUT COMP_CSR_INPMOD /**< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0BBA5><EFBFBD>ӣ<EFBFBD><D3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڱȽ<DAB1><C8BD><EFBFBD>ģʽ */
/* <20>Ƚ<EFBFBD><C8BD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD>ٶ<EFBFBD> */
#define COMP_VERYLOWSPEED COMP_CSR_VERY_LOW_SPEED /**< <20><>Ӧ<EFBFBD>ٶ<EFBFBD>ģʽ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
#define COMP_LOWSPEED COMP_CSR_LOW_SPEED /**< <20><>Ӧ<EFBFBD>ٶ<EFBFBD>ģʽ <20><><EFBFBD><EFBFBD> */
#define COMP_MEDIUMSPEED COMP_CSR_MEDIUM_SPEED /**< <20><>Ӧ<EFBFBD>ٶ<EFBFBD>ģʽ <20><><EFBFBD><EFBFBD> */
#define COMP_HIGHSPEED COMP_CSR_HIGH_SPEED /**< <20><>Ӧ<EFBFBD>ٶ<EFBFBD>ģʽ <20><><EFBFBD><EFBFBD> */
/* <20>Ƚ<EFBFBD><C8BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ */
#define COMP_HYST_NONE COMP_CSR_HYST_NONE /**< <20><><EFBFBD><EFBFBD>ģʽ<C4A3><CABD><EFBFBD>޳<EFBFBD><DEB3><EFBFBD> */
#define COMP_HYST_LOW COMP_CSR_HYST_LOW /**< <20><><EFBFBD><EFBFBD>ģʽ<C4A3><CABD>10mV */
#define COMP_HYST_MEDIUM COMP_CSR_HYST_MEDIUM /**< <20><><EFBFBD><EFBFBD>ģʽ<C4A3><CABD>20mV */
#define COMP_HYST_HIGH COMP_CSR_HYST_HIGH /**< <20><><EFBFBD><EFBFBD>ģʽ<C4A3><CABD>30mV */
/* <20>Ƚ<EFBFBD><C8BD><EFBFBD><EFBFBD>˲<EFBFBD>ʹ<EFBFBD><CAB9> */
#define COMP_FILTER_DISABLE (0x00000000U) /**< <20>Ƚ<EFBFBD><C8BD><EFBFBD><EFBFBD>˲<EFBFBD><CBB2><EFBFBD>ֹ */
#define COMP_FILTER_ENABLE COMP_CSR_FLTEN /**< <20>Ƚ<EFBFBD><C8BD><EFBFBD><EFBFBD>˲<EFBFBD>ʹ<EFBFBD><CAB9> */
/* <20>Ƚ<EFBFBD><C8BD><EFBFBD><EFBFBD>˲<EFBFBD>ʱ<EFBFBD><CAB1> */
#define COMP_FLTIME_2CYCLE COMP_CSR_FLTIME_2CYCLE /**< <20>˲<EFBFBD>ʱ<EFBFBD><CAB1> 2<><32>CYCLE */
#define COMP_FLTIME_4CYCLE COMP_CSR_FLTIME_4CYCLE /**< <20>˲<EFBFBD>ʱ<EFBFBD><CAB1> 4<><34>CYCLE */
#define COMP_FLTIME_8CYCLE COMP_CSR_FLTIME_8CYCLE /**< <20>˲<EFBFBD>ʱ<EFBFBD><CAB1> 8<><38>CYCLE */
#define COMP_FLTIME_16CYCLE COMP_CSR_FLTIME_16CYCLE /**< <20>˲<EFBFBD>ʱ<EFBFBD><CAB1> 16<31><36>CYCLE */
#define COMP_FLTIME_32CYCLE COMP_CSR_FLTIME_32CYCLE /**< <20>˲<EFBFBD>ʱ<EFBFBD><CAB1> 32<33><32>CYCLE */
#define COMP_FLTIME_64CYCLE COMP_CSR_FLTIME_64CYCLE /**< <20>˲<EFBFBD>ʱ<EFBFBD><CAB1> 64<36><34>CYCLE */
#define COMP_FLTIME_128CYCLE COMP_CSR_FLTIME_128CYCLE /**< <20>˲<EFBFBD>ʱ<EFBFBD><CAB1> 128<32><38>CYCLE */
#define COMP_FLTIME_256CYCLE COMP_CSR_FLTIME_256CYCLE /**< <20>˲<EFBFBD>ʱ<EFBFBD><CAB1> 256<35><36>CYCLE */
/* <20>Ƚ<EFBFBD><C8BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
#define COMP_OUTPOL_NON_INVERTED (0x00000000U) /**< <20><><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
#define COMP_OUTPOL_INVERTED COMP_CSR_POL /**< <20><><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD> */
/* <20>Ƚ<EFBFBD><C8BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1> */
#define COMP_OUTMODE_EACH_OUT (0x00000000U) /**< <20><><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>ԭʼ<D4AD><CABC>ѹ<EFBFBD>ȽϽ<C8BD><CFBD><EFBFBD> */
#define COMP_OUTMODE_COMMON_XOR_OUT COMP_CSR_OUTMOD /**< <20><><EFBFBD><EFBFBD>Ϊ<EFBFBD>Ƚ<EFBFBD><C8BD><EFBFBD>1<EFBFBD><31>2<EFBFBD><32>ѹ<EFBFBD>ȽϽ<C8BD><CFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
/* <20>Ƚ<EFBFBD><C8BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
#define COMP_OUTPUT_LEVEL_LOW (0x00000000UL) /**< <20>Ƚ<EFBFBD><C8BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD><C6BD> */
#define COMP_OUTPUT_LEVEL_HIGH (0x00000001UL) /**< <20>Ƚ<EFBFBD><C8BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD><C6BD> */
/* <20>ȴ<EFBFBD>COMP1ʹ<31><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
<EFBFBD><EFBFBD>Ӧ<EFBFBD>ٶ<EFBFBD>ģʽΪ<EFBFBD><EFBFBD> <EFBFBD><EFBFBD> ʹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>23US
<EFBFBD><EFBFBD>Ӧ<EFBFBD>ٶ<EFBFBD>ģʽΪ<EFBFBD><EFBFBD> <EFBFBD><EFBFBD> ʹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>24US
<EFBFBD><EFBFBD>Ӧ<EFBFBD>ٶ<EFBFBD>ģʽΪ<EFBFBD><EFBFBD> <EFBFBD><EFBFBD> ʹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>30US
<EFBFBD><EFBFBD>Ӧ<EFBFBD>ٶ<EFBFBD>ģʽΪ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ʹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>39US
*/
#define COMP_EN_DELAY (30U) /**< COMPʹ<50><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> */
/**
* @}
*/
/*-------------------------------------------functions------------------------------------------*/
/************************************************************************************************/
/**
* @defgroup COMP_External_Functions COMP External Functions
* @brief COMP<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @{
*
*/
/************************************************************************************************/
/**
* @brief ʹ<EFBFBD><EFBFBD>COMP
* @param compx COMP<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_comp_enable(COMP_t *compx)
{
compx->CSR |= (COMP_CSR_EN);
}
/**
* @brief <EFBFBD><EFBFBD>ֹCOMP
* @param compx COMP<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_comp_disable(COMP_t *compx)
{
compx->CSR &= (~COMP_CSR_EN);
}
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>COMP<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param compx COMP<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param input_minus <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD>
* @arg COMP_INMSEL_VBGR
* @arg COMP_INMSEL_6BIT_DAC
* @arg COMP_INMSEL_IO1
* @arg COMP_INMSEL_IO2
* @arg COMP_INMSEL_IO3
* @arg COMP_INMSEL_IO4
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_comp_set_input_minus(COMP_t *compx, uint32_t input_minus)
{
MODIFY_REG(compx->CSR, COMP_CSR_INM, input_minus);
}
/**
* @brief <EFBFBD><EFBFBD>ȡCOMP<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param compx COMP<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @retval uint32_t <EFBFBD><EFBFBD><EFBFBD>ط<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @arg COMP_INMSEL_VBGR
* @arg COMP_INMSEL_6BIT_DAC
* @arg COMP_INMSEL_IO1
* @arg COMP_INMSEL_IO2
* @arg COMP_INMSEL_IO3
* @arg COMP_INMSEL_IO4
*/
__STATIC_INLINE uint32_t std_comp_get_input_minus(COMP_t *compx)
{
return(compx->CSR & COMP_CSR_INM);
}
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>COMP<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param compx COMP<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param input_plus <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD>
* @arg COMP_INPSEL_IO1
* @arg COMP_INPSEL_IO2
* @arg COMP_INPSEL_IO3
* @arg COMP_INPSEL_IO4
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_comp_set_input_plus(COMP_t *compx, uint32_t input_plus)
{
MODIFY_REG(compx->CSR, COMP_CSR_INP, input_plus);
}
/**
* @brief <EFBFBD><EFBFBD>ȡCOMP<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param compx COMP<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @retval uint32_t <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @arg COMP_INPSEL_IO1
* @arg COMP_INPSEL_IO2
* @arg COMP_INPSEL_IO3
* @arg COMP_INPSEL_IO4
*/
__STATIC_INLINE uint32_t std_comp_get_input_plus(COMP_t *compx)
{
return(compx->CSR & COMP_CSR_INP);
}
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>COMP<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ
* @param compx COMP<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param input_mode <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽѡ<EFBFBD><EFBFBD>
* @arg COMP_INPMODE_EACH_INPUT
* @arg COMP_INPMODE_COMMON_INPUT
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_comp_set_input_plus_mode(COMP_t *compx, uint32_t input_mode)
{
MODIFY_REG(compx->CSR, COMP_CSR_INPMOD, input_mode);
}
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>COMP<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ
* @param compx COMP<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param output_mode <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽѡ<EFBFBD><EFBFBD>
* @arg COMP_OUTMODE_EACH_OUT
* @arg COMP_OUTMODE_COMMON_XOR_OUT
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_comp_set_output_mode(COMP_t *compx, uint32_t output_mode)
{
MODIFY_REG(compx->CSR, COMP_CSR_OUTMOD, output_mode);
}
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>COMP<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param compx COMP<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param output_polarity <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD>
* @arg COMP_OUTPOL_NON_INVERTED
* @arg COMP_OUTPOL_INVERTED
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_comp_set_output_polarity(COMP_t *compx, uint32_t output_polarity)
{
MODIFY_REG(compx->CSR, COMP_CSR_POL, output_polarity);
}
/**
* @brief <EFBFBD><EFBFBD>ȡCOMP<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param compx COMP<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @retval uint32_t <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @arg COMP_OUTPOL_NON_INVERTED
* @arg COMP_OUTPOL_INVERTED
*/
__STATIC_INLINE uint32_t std_comp_get_output_polarity(COMP_t *compx)
{
return(compx->CSR & COMP_CSR_POL);
}
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>COMP<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ
* @param compx COMP<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param input_hysteresis <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽѡ<EFBFBD><EFBFBD>
* @arg COMP_HYST_NONE
* @arg COMP_HYST_LOW
* @arg COMP_HYST_MEDIUM
* @arg COMP_HYST_HIGH
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_comp_set_input_hysteresis(COMP_t *compx, uint32_t input_hysteresis)
{
MODIFY_REG(compx->CSR, COMP_CSR_HYST, input_hysteresis);
}
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>COMP<EFBFBD><EFBFBD>Ӧ<EFBFBD>ٶ<EFBFBD>ģʽ
* @param compx COMP<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param speed_mode <EFBFBD><EFBFBD>Ӧ<EFBFBD>ٶ<EFBFBD>
* @arg COMP_VERYLOWSPEED
* @arg COMP_LOWSPEED
* @arg COMP_MEDIUMSPEED
* @arg COMP_HIGHSPEED
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_comp_set_speed_mode(COMP_t *compx, uint32_t speed_mode)
{
MODIFY_REG(compx->CSR, COMP_CSR_SPEED, speed_mode);
}
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>COMP<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˲<EFBFBD>ʱ<EFBFBD><EFBFBD>
* @param compx COMP<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param filter_time <EFBFBD>˲<EFBFBD>ʱ<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD>
* @arg COMP_FLTIME_2CYCLE
* @arg COMP_FLTIME_4CYCLE
* @arg ...
* @arg COMP_FLTIME_256CYCLE
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_comp_set_output_filter_time(COMP_t *compx, uint32_t filter_time)
{
MODIFY_REG(compx->CSR, COMP_CSR_FLTIME, filter_time);
}
/**
* @brief COMP<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˲<EFBFBD>ʹ<EFBFBD><EFBFBD>
* @param compx COMP<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_comp_output_filter_enable(COMP_t *compx)
{
compx->CSR |= (COMP_CSR_FLTEN);
}
/**
* @brief COMP<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˲<EFBFBD><EFBFBD><EFBFBD>ֹ
* @param compx COMP<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_comp_output_filter_disable(COMP_t *compx)
{
compx->CSR &= (~COMP_CSR_FLTEN);
}
/**
* @brief <EFBFBD><EFBFBD>ȡCOMPʹ<EFBFBD><EFBFBD>״̬
* @param compx COMP<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @retval bool <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><EFBFBD><EFBFBD>жϽ<EFBFBD><EFBFBD><EFBFBD>
* @arg true<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ʾCOMP<EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD>
* @arg false<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾCOMPδʹ<EFBFBD><EFBFBD>
*/
__STATIC_INLINE bool std_comp_get_enable_status(COMP_t *compx)
{
return ((compx->CSR & COMP_CSR_EN) == COMP_CSR_EN);
}
/**
* @brief COMP<EFBFBD>Ĵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param compx COMP<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @note ֻ<EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_comp_lock(COMP_t *compx)
{
compx->CSR |= (COMP_CSR_LOCK);
}
/**
* @brief <EFBFBD><EFBFBD>ȡCOMP<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param compx COMP<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @retval uint32_t <EFBFBD><EFBFBD><EFBFBD><EFBFBD>COMP<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @arg COMP_OUTPUT_LEVEL_LOW
* @arg COMP_OUTPUT_LEVEL_HIGH
*/
__STATIC_INLINE uint32_t std_comp_get_output_result(COMP_t *compx)
{
return ((compx->CSR & COMP_CSR_VAL) >> COMP_CSR_VAL_POS);
}
/* COMP<4D><50>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
void std_comp_init(COMP_t *compx, std_comp_init_t *comp_init_param);
/* COMP<4D><EFBFBD><E1B9B9><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
void std_comp_struct_init(std_comp_init_t *comp_init_struct);
/* COMPȥ<50><C8A5>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
void std_comp_deinit(COMP_t *compx);
/**
* @}
*/
#ifdef __cplusplus
}
#endif
/**
* @}
*/
/**
* @}
*/
#endif /* CIU32L051_STD_COMP_H */