QQT912/CW32F030/原项目程序/SW/Libraries/inc/cw32f030_vc.h

490 lines
16 KiB
C
Raw Normal View History

/**
* @file cw32f030_vc.h
* @author P&S (you@domain.com)
* @brief
* @version 0.1
* @date 2021-06-21
*
* @copyright Copyright (c) 2021
*
*/
/*******************************************************************************
*
* <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><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><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><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><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><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>ij<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>Դ<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><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>ӵġ<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><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>
* ijЩ˾<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>κε<EFBFBD><EFBFBD>ų<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ijЩ<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>
*
*******************************************************************************/
#ifndef __CW32F030_VC_H
#define __CW32F030_VC_H
/******************************************************************************
* Include files
******************************************************************************/
#include "base_types.h"
/* C binding of definitions if building with C++ compiler */
#ifdef __cplusplus
extern "C"
{
#endif
/**
******************************************************************************
** \defgroup VcGroup Voltage Comparator (VC)
**
******************************************************************************/
//@{
/******************************************************************************
* Global type definitions
******************************************************************************/
#define VC_INT_PRIORITY ((uint32_t)3) /*VC interrupt priority (lowest by default) */
/** @defgroup VC_interrupts_definition
* @{
*/
#define VC_IT_HIGH ((uint16_t)0x0080)
#define VC_IT_RISE ((uint16_t)0x0040)
#define VC_IT_FALL ((uint16_t)0x0020)
#define IS_VC_IT(IT) ((((IT) & (uint16_t)0xFF00) == 0x00) && ((IT) != 0x00))
#define IS_VC_GET_IT(IT) (((IT) == VC_IT_HIGH) || \
((IT) == VC_IT_RISE) || \
((IT) == VC_IT_FALL))
/** @defgroup VC_flags_definition
* @{
*/
#define VC_FLAG_READY ((uint16_t)0x0004)
#define VC_FLAG_FLTV ((uint16_t)0x0002)
#define VC_FLAG_INTF ((uint16_t)0x0001)
#define IS_VC_FLAG(FLAG) ((((FLAG) & (uint16_t)0xFF00) == 0x00) && ((FLAG) != 0x00))
#define IS_VC_GET_FLAG(FLAG) (((FLAG) == VC_FLAG_READY) || \
((FLAG) == VC_FLAG_FLTV) || \
((FLAG) == VC_FLAG_INTF))
/** @defgroup VC_DivEn
* @{
*/
#define VC_Div_Disable ((uint32_t)0x00000000)
#define VC_Div_Enable ((uint32_t)0x00000040)
#define IS_VC_DIV_EN(DIV_EN) (((DIV_EN) == VC_Div_Disable) || \
((DIV_EN) == VC_Div_Enable))
/** @defgroup VC_DivVref
* @{
*/
#define VC_DivVref_VDDA ((uint32_t)0x00000000)
#define VC_DivVref_ADC ((uint32_t)0x00000080)
#define IS_VC_DIV_VREF(DIV_VREF) (((DIV_VREF) == VC_DivVref_VDDA) || \
((DIV_VREF) == VC_DivVref_ADC))
/** @defgroup VC_InputP
* @{
* VC1 VC2
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD>0 PA00 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD>0 PA05
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD>1 PA01 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD>1 PA06
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD>2 PA02 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD>2 PA07
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD>3 PA03 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD>3 PB00
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD>4 PA04 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD>4 PB01
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD>5 PA05 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD>5 PB02
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD>6 PA06 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD>6 PB10
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD>7 PA07 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD>7 PB11
*/
#define VC_InputP_Ch0 ((uint32_t)0x00000000)
#define VC_InputP_Ch1 ((uint32_t)0x00000100)
#define VC_InputP_Ch2 ((uint32_t)0x00000200)
#define VC_InputP_Ch3 ((uint32_t)0x00000300)
#define VC_InputP_Ch4 ((uint32_t)0x00000400)
#define VC_InputP_Ch5 ((uint32_t)0x00000500)
#define VC_InputP_Ch6 ((uint32_t)0x00000600)
#define VC_InputP_Ch7 ((uint32_t)0x00000700)
#define IS_VC_INPUT_P(INPUT_P) (((INPUT_P) == VC_InputP_Ch0) || \
((INPUT_P) == VC_InputP_Ch1) || \
((INPUT_P) == VC_InputP_Ch2) || \
((INPUT_P) == VC_InputP_Ch3) || \
((INPUT_P) == VC_InputP_Ch4) || \
((INPUT_P) == VC_InputP_Ch5) || \
((INPUT_P) == VC_InputP_Ch6) || \
((INPUT_P) == VC_InputP_Ch7))
/** @defgroup VC_InputN
* @{
* VC1 VC2
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD>0 PA00 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD>0 PA05
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD>1 PA01 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD>1 PA06
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD>2 PA02 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD>2 PA07
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD>3 PA03 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD>3 PB00
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD>4 PA04 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD>4 PB01
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD>5 PA05 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD>5 PB02
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD>6 PA06 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD>6 PB10
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD>7 PA07 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD>7 PB11
* VDDA<EFBFBD><EFBFBD>ѹ VDDA<EFBFBD><EFBFBD>ѹ
* ADC VREF ADC VREF
* BGR 1.2V BGR 1.2V
* <EFBFBD>ȴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ȴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
#define VC_InputN_Ch0 ((uint32_t)0x00000000)
#define VC_InputN_Ch1 ((uint32_t)0x00001000)
#define VC_InputN_Ch2 ((uint32_t)0x00002000)
#define VC_InputN_Ch3 ((uint32_t)0x00003000)
#define VC_InputN_Ch4 ((uint32_t)0x00004000)
#define VC_InputN_Ch5 ((uint32_t)0x00005000)
#define VC_InputN_Ch6 ((uint32_t)0x00006000)
#define VC_InputN_Ch7 ((uint32_t)0x00007000)
#define VC_InputN_DivOut ((uint32_t)0x00008000)
#define VC_InputN_AdcVref ((uint32_t)0x00009000)
#define VC_InputN_Bgr1P2 ((uint32_t)0x0000A000)
#define VC_InputN_Ts ((uint32_t)0x0000B000)
#define IS_VC_INPUT_N(INPUT_N) (((INPUT_N) == VC_InputN_Ch0) || \
((INPUT_N) == VC_InputN_Ch1) || \
((INPUT_N) == VC_InputN_Ch2) || \
((INPUT_N) == VC_InputN_Ch3) || \
((INPUT_N) == VC_InputN_Ch4) || \
((INPUT_N) == VC_InputN_Ch5) || \
((INPUT_N) == VC_InputN_Ch6) || \
((INPUT_N) == VC_InputN_Ch7) || \
((INPUT_N) == VC_InputN_DivOut) || \
((INPUT_N) == VC_InputN_AdcVref) || \
((INPUT_N) == VC_InputN_Bgr1P2) || \
((INPUT_N) == VC_InputN_Ts))
/** @defgroup VC_Hys
* @{
*/
#define VC_Hys_Off ((uint32_t)0x00000000)
#define VC_Hys_10mV ((uint32_t)0x00000008)
#define VC_Hys_20mV ((uint32_t)0x00000010)
#define VC_Hys_30mV ((uint32_t)0x00000018)
#define IS_VC_HYS(HYS) (((HYS) == VC_Hys_Off) || \
((HYS) == VC_Hys_10mV) || \
((HYS) == VC_Hys_20mV) || \
((HYS) == VC_Hys_30mV))
/** @defgroup VC_Resp
* @{
*/
#define VC_Resp_ExtraLow ((uint32_t)0x00000000)
#define VC_Resp_Low ((uint32_t)0x00000002)
#define VC_Resp_Medium ((uint32_t)0x00000004)
#define VC_Resp_High ((uint32_t)0x00000006)
#define IS_VC_RESP(RESP) (((RESP) == VC_Resp_ExtraLow) || \
((RESP) == VC_Resp_Low) || \
((RESP) == VC_Resp_Medium) || \
((RESP) == VC_Resp_High))
/** @defgroup VC_FilterEn
* @{
*/
#define VC_Filter_Disable ((uint32_t)0x00000000)
#define VC_Filter_Enable ((uint32_t)0x00000001)
#define IS_VC_FILTER(FILTER) (((FILTER) == VC_Filter_Disable) || \
((FILTER) == VC_Filter_Enable))
/** @defgroup VC_FilterClk
* @{
*/
#define VC_FltClk_RC150K ((uint32_t)0x00000000)
#define VC_FltClk_PCLK ((uint32_t)0x00000010)
#define IS_VC_FLT_CLK(FLT_CLK) (((FLT_CLK) == VC_FltClk_RC150K) || \
((FLT_CLK) == VC_FltClk_PCLK))
/** @defgroup VC_FilterTime
* @{
*/
#define VC_FltTime_1Clk ((uint32_t)0x00000000)
#define VC_FltTime_3Clk ((uint32_t)0x00000002)
#define VC_FltTime_7Clk ((uint32_t)0x00000004)
#define VC_FltTime_15Clk ((uint32_t)0x00000006)
#define VC_FltTime_63Clk ((uint32_t)0x00000008)
#define VC_FltTime_255Clk ((uint32_t)0x0000000A)
#define VC_FltTime_1023Clk ((uint32_t)0x0000000C)
#define VC_FltTime_4095Clk ((uint32_t)0x0000000E)
#define IS_VC_FLT_TIME(FLT_TIME) (((FLT_TIME) == VC_FltTime_1Clk) || \
((FLT_TIME) == VC_FltTime_3Clk) || \
((FLT_TIME) == VC_FltTime_7Clk) || \
((FLT_TIME) == VC_FltTime_15Clk) || \
((FLT_TIME) == VC_FltTime_63Clk) || \
((FLT_TIME) == VC_FltTime_255Clk) || \
((FLT_TIME) == VC_FltTime_1023Clk) || \
((FLT_TIME) == VC_FltTime_4095Clk))
/** @defgroup VC_WindowEn
* @{
*/
#define VC_Window_Disable ((uint32_t)0x00000000)
#define VC_Window_Enable ((uint32_t)0x00000080)
#define IS_VC_WINDOW(WINDOW) (((WINDOW) == VC_Window_Disable) || \
((WINDOW) == VC_Window_Enable))
/** @defgroup VC_Polarity
* @{
*/
#define VC_Polarity_Low ((uint32_t)0x00000000)
#define VC_Polarity_High ((uint32_t)0x00000040)
#define IS_VC_POLARITY(POLARITY) (((POLARITY) == VC_Polarity_Low) || \
((POLARITY) == VC_Polarity_High))
/** @defgroup VC_BlankFlt
* @{
*/
#define VC_BlankFlt_4Clk ((uint32_t)0x00000000)
#define VC_BlankFlt_8Clk ((uint32_t)0x00002000)
#define VC_BlankFlt_16Clk ((uint32_t)0x00004000)
#define VC_BlankFlt_32Clk ((uint32_t)0x00006000)
#define VC_BlankFlt_64Clk ((uint32_t)0x00008000)
#define VC_BlankFlt_128Clk ((uint32_t)0x0000A000)
#define VC_BlankFlt_256Clk ((uint32_t)0x0000C000)
#define VC_BlankFlt_512Clk ((uint32_t)0x0000E000)
#define IS_VC_BLANK_FLT(BLANK_FLT) (((BLANK_FLT) == VC_BlankFlt_4Clk) || \
((BLANK_FLT) == VC_BlankFlt_8Clk) || \
((BLANK_FLT) == VC_BlankFlt_16Clk) || \
((BLANK_FLT) == VC_BlankFlt_32Clk) || \
((BLANK_FLT) == VC_BlankFlt_64Clk) || \
((BLANK_FLT) == VC_BlankFlt_128Clk) || \
((BLANK_FLT) == VC_BlankFlt_256Clk) || \
((BLANK_FLT) == VC_BlankFlt_512Clk))
/** @defgroup VC_BlankCh3B
* @{
*/
#define VC_BlankCh3B_Disable ((uint32_t)0x00000000)
#define VC_BlankCh3B_Enable ((uint32_t)0x00001000)
#define IS_VC_BLANK_CH3B(BLANK_CH3B) (((BLANK_CH3B) == VC_BlankCh3B_Disable) || \
((BLANK_CH3B) == VC_BlankCh3B_Enable))
/** @defgroup VC_BlankCh2B
* @{
*/
#define VC_BlankCh2B_Disable ((uint32_t)0x00000000)
#define VC_BlankCh2B_Enable ((uint32_t)0x00000800)
#define IS_VC_BLANK_CH2B(BLANK_CH2B) (((BLANK_CH2B) == VC_BlankCh2B_Disable) || \
((BLANK_CH2B) == VC_BlankCh2B_Enable))
/** @defgroup VC_BlankCh1B
* @{
*/
#define VC_BlankCh1B_Disable ((uint32_t)0x00000000)
#define VC_BlankCh1B_Enable ((uint32_t)0x00000400)
#define IS_VC_BLANK_CH1B(BLANK_CH1B) (((BLANK_CH1B) == VC_BlankCh1B_Disable) || \
((BLANK_CH1B) == VC_BlankCh1B_Enable))
/** @defgroup VC_ATIMBk
* @{
*/
#define VC_ATIMBk_Disable ((uint32_t)0x00000000)
#define VC_ATIMBk_Enable ((uint32_t)0x00000200)
#define IS_VC_ATIMBK(ATIMBK) (((ATIMBK) == VC_ATIMBk_Disable) || \
((ATIMBK) == VC_ATIMBk_Enable))
/** @defgroup VC_ATIMClr
* @{
*/
#define VC_ATIMClr_Disable ((uint32_t)0x00000000)
#define VC_ATIMClr_Enable ((uint32_t)0x00000100)
#define IS_VC_ATIMCLR(ATIMCLR) (((ATIMCLR) == VC_ATIMClr_Disable) || \
((ATIMCLR) == VC_ATIMClr_Enable))
/**
******************************************************************************
** @brief VCģ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*****************************************************************************/
typedef struct
{
uint32_t VC_DivVref; // 6-bit VDDA divider<65><72><EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD><CEBF><EFBFBD>ѹѡ<D1B9><D1A1>
uint32_t VC_DivEn; // ʹ<><CAB9>6-bit VDDA divider
uint8_t VC_DivValue; // 6-bit VDDA divider<65><72><EFBFBD><EFBFBD>ֵ
}VC_DivTypeDef;
/**
******************************************************************************
** @brief VCͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*****************************************************************************/
typedef struct
{
uint32_t VC_InputP; // P<><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
uint32_t VC_InputN; // N<><4E><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
uint32_t VC_Hys; // VC<56><43><EFBFBD><EFBFBD>
uint32_t VC_Resp; // VC<56><43>Ӧ<EFBFBD>ٶ<EFBFBD>
uint32_t VC_FilterEn; // VC<56><43><EFBFBD><EFBFBD><EFBFBD>˲<EFBFBD>ʹ<EFBFBD><CAB9>
uint32_t VC_FilterClk; // <20>˲<EFBFBD>ʱ<EFBFBD><CAB1>Դ
uint32_t VC_FilterTime; // <20><><EFBFBD><EFBFBD><EFBFBD>˲<EFBFBD>ʱ<EFBFBD><CAB1>
uint32_t VC_Window; // VC<56><43><EFBFBD>ڱȽϹ<C8BD><CFB9><EFBFBD>ʹ<EFBFBD><CAB9>
uint32_t VC_Polarity; // VC<56><43><EFBFBD><EFBFBD><EFBFBD>źż<C5BA><C5BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}VC_InitTypeDef;
/**
******************************************************************************
** @brief VCģ<EFBFBD><EFBFBD>Blank<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*****************************************************************************/
typedef struct
{
uint32_t VC_BlankFlt; /*Blank<6E><6B><EFBFBD>ڳ<EFBFBD><DAB3><EFBFBD>ʱ<EFBFBD><CAB1>*/
uint32_t VC_BlankCh3B; /*ATIM<49><4D>CH3<48><33><EFBFBD><EFBFBD>VCx<43><78><EFBFBD><EFBFBD>Blank<6E><6B><EFBFBD><EFBFBD>*/
uint32_t VC_BlankCh2B; /*ATIM<49><4D>CH2<48><32><EFBFBD><EFBFBD>VCx<43><78><EFBFBD><EFBFBD>Blank<6E><6B><EFBFBD><EFBFBD>*/
uint32_t VC_BlankCh1B; /*ATIM<49><4D>CH1<48><31><EFBFBD><EFBFBD>VCx<43><78><EFBFBD><EFBFBD>Blank<6E><6B><EFBFBD><EFBFBD>*/
}VC_BlankTypeDef;
/**
******************************************************************************
** @brief VC<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD>ATIM<EFBFBD><EFBFBD>BK/CLR<EFBFBD>ź<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*****************************************************************************/
typedef struct
{
uint32_t VC_ATIMBk; /*VCx<43><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD>ATIM<49><4D>BK<42>ź<EFBFBD>*/
uint32_t VC_OutAtimClr; /*VCx<43><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD>ATIM<49><4D>CLR<4C>ź<EFBFBD>*/
}VC_OutTypeDef;
/******************************************************************************
* Global definitions
******************************************************************************/
/******************************************************************************
* Local type definitions ('typedef')
******************************************************************************/
/******************************************************************************
* Global variable definitions ('extern')
******************************************************************************/
/******************************************************************************
* Global function prototypes (definition in C source)
******************************************************************************/
//VC1/VC2ģ<32><C4A3>VCx<43><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>źų<C5BA>ʼ<EFBFBD><CABC>
void VC1VC2_INNInit(VC_InitTypeDef* VC_InitStruct);
//VCͨ<43><CDA8>1<EFBFBD><31>ʼ<EFBFBD><CABC>
void VC1_ChannelInit(VC_InitTypeDef* VC_InitStruct);
//VCͨ<43><CDA8>2<EFBFBD><32>ʼ<EFBFBD><CABC>
void VC2_ChannelInit(VC_InitTypeDef* VC_InitStruct);
//VCͨ<43><CDA8>1ȥ<31><C8A5>ʼ<EFBFBD><CABC>
void VC1_ChannelDeInit(void);
//VCͨ<43><CDA8>2ȥ<32><C8A5>ʼ<EFBFBD><CABC>
void VC2_ChannelDeInit(void);
//VCģ<43><C4A3>ȥ<EFBFBD><C8A5>ʼ<EFBFBD><CABC>
void VC_DeInit(void);
//VC1/VC2ģ<32><C4A3>DIV<49>ο<EFBFBD><CEBF><EFBFBD>ѹ<EFBFBD><D1B9>ʼ<EFBFBD><CABC>
void VC1VC2_DIVInit(VC_DivTypeDef* VC_DivStruct);
//VC1/VC2ģ<32><C4A3>DIV<49>ο<EFBFBD><CEBF><EFBFBD>ѹȥ<D1B9><C8A5>ʼ<EFBFBD><CABC>
void VC1VC2_DIVDeInit(void);
//VC1ͨ<31><CDA8>ʹ<EFBFBD><CAB9>
void VC1_EnableChannel(void);
//VC2ͨ<32><CDA8>ʹ<EFBFBD><CAB9>
void VC2_EnableChannel(void);
//VC1ͨ<31><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void VC1_DisableChannel(void);
//VC2ͨ<32><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void VC2_DisableChannel(void);
//VC1<43><31><EFBFBD><EFBFBD><EFBFBD>˲<EFBFBD>ʹ<EFBFBD><CAB9>
void VC1_EnableFilter(void);
//VC2<43><32><EFBFBD><EFBFBD><EFBFBD>˲<EFBFBD>ʹ<EFBFBD><CAB9>
void VC2_EnableFilter(void);
//VC1<43><31><EFBFBD><EFBFBD><EFBFBD>˲<EFBFBD><CBB2><EFBFBD><EFBFBD><EFBFBD>
void VC1_DisableFilter(void);
//VC2<43><32><EFBFBD><EFBFBD><EFBFBD>˲<EFBFBD><CBB2><EFBFBD><EFBFBD><EFBFBD>
void VC2_DisableFilter(void);
//VCͨ<43><CDA8>1/2 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC>ֵ<EFBFBD><D6B5>ʼ<EFBFBD><CABC>
void VC1VC2_OutInit(VC_OutTypeDef* VC_OutStruct);
//VCͨ<43><CDA8>1<EFBFBD><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void VC1_OutputCfg(VC_OutTypeDef* VC_OutStruct);
//VCͨ<43><CDA8>2<EFBFBD><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void VC2_OutputCfg(VC_OutTypeDef* VC_OutStruct);
//VCͨ<43><CDA8>1/2 BlanK<6E><4B><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC>ֵ<EFBFBD><D6B5>ʼ<EFBFBD><CABC>
void VC1VC2_BlankInit(VC_BlankTypeDef* VC_BlankStruct);
//VCͨ<43><CDA8>1 BlanK<6E><4B><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void VC1_BlankCfg(VC_BlankTypeDef* VC_BlankStruct);
//VCͨ<43><CDA8>2 BlanK<6E><4B><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void VC2_BlankCfg(VC_BlankTypeDef* VC_BlankStruct);
//VCͨ<43><CDA8>1<EFBFBD><31><EFBFBD>ڱȽϹ<C8BD><CFB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void VC1_WindowEnable(boolean_t bWindow);
//VCͨ<43><CDA8>2<EFBFBD><32><EFBFBD>ڱȽϹ<C8BD><CFB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void VC2_WindowEnable(boolean_t bWindow);
//VCͨ<43><CDA8>1<EFBFBD><31><EFBFBD><EFBFBD><EFBFBD>źż<C5BA><C5BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void VC1_PolarityCfg(boolean_t bPolarity);
//VCͨ<43><CDA8>2<EFBFBD><32><EFBFBD><EFBFBD><EFBFBD>źż<C5BA><C5BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void VC2_PolarityCfg(boolean_t bPolarity);
//ʹ<><CAB9>NVIC<49><43>VCx<43>ж<EFBFBD>
void VC_EnableNvic(IRQn_Type enIrqn, uint8_t intPriority);
//<2F><>ֹNVIC<49><43>VC<56>ж<EFBFBD>
void VC_DisableNvic(IRQn_Type enIrqn);
//VCͨ<43><CDA8>1<EFBFBD>жϽ<D0B6><CFBD><EFBFBD>
void VC1_DisableIrq(void);
//VCͨ<43><CDA8>2<EFBFBD>жϽ<D0B6><CFBD><EFBFBD>
void VC2_DisableIrq(void);
//VCͨ<43><CDA8>1<EFBFBD>ж<EFBFBD>ʹ<EFBFBD><CAB9>
void VC1_EnableIrq(uint8_t intPriority);
//VCͨ<43><CDA8>2<EFBFBD>ж<EFBFBD>ʹ<EFBFBD><CAB9>
void VC2_EnableIrq(uint8_t intPriority);
//<2F><><EFBFBD><EFBFBD>VC1<43>жϴ<D0B6><CFB4><EFBFBD><EFBFBD><EFBFBD>ʽ
void VC1_ITConfig(uint16_t VC_IT, FunctionalState NewState);
//<2F><><EFBFBD><EFBFBD>VC2<43>жϴ<D0B6><CFB4><EFBFBD><EFBFBD><EFBFBD>ʽ
void VC2_ITConfig(uint16_t VC_IT, FunctionalState NewState);
//<2F><><EFBFBD><EFBFBD>VC1<43>жϱ<D0B6>־
void VC1_ClearIrq(void);
//<2F><><EFBFBD><EFBFBD>VC2<43>жϱ<D0B6>־
void VC2_ClearIrq(void);
//<2F><>ȡVC1״̬
FlagStatus VC1_GetFlagStatus(uint16_t VC_FLAG);
//<2F><>ȡVC2״̬
FlagStatus VC2_GetFlagStatus(uint16_t VC_FLAG);
//@} // VcGroup
#ifdef __cplusplus
}
#endif
#endif /* __CW32F030_VC_H */
/******************************************************************************
* EOF (not truncated)
******************************************************************************/