Z20K118库中寄存器及其库函数封装-ADC库
1.ADC控制寄存器
7个位域。
1-1
void ADC_SoftwareReset(ADC_ID_t adcId)
ADC软件复位。 1个位域。该位RST专门用于本函数的软件复位,软件置1ADC会一直保持复位状态,直至软件置0。
1-2 
void ADC_Init(ADC_ID_t adcId, const ADC_Config_t* adcConfigSet)
初始化ADC.1个。还有5个CFG寄存器的位域。本寄存器:1.普通模式(软件)/触发模式(TMU)CFG寄存器:1.外部参考电压/VDD和VCC参考电压 2.分辨率,8位/10位/12位。3.单次转换/连续转换 4.输出值平均次数,1/4/8/16/32次。5.采样时间设置,为32位数值,不得小于500ns。
1-3
void ADC_ResetLoopMode(ADC_ID_t adcId)
结束循环模式的循环,1个位域。
1-4
void ADC_Enable(ADC_ID_t adcId)
使能ADC。1个。
1-5
void ADC_Disable(ADC_ID_t adcId)
失能ADC。1个。
1-6
void ADC_DozeControl(ADC_ID_t adcId, ControlState_t cmd)
使能ADC的DOZEN模式。1个位域。DOZE模式即低功耗运行模式,当CPU进入低功耗休眠状态(DOZE MODE)允许ADC继续运行。
2.ADC配置信息寄存器 
9个位域。
2-1
void ADC_Init(ADC_ID_t adcId, const ADC_Config_t* adcConfigSet)
即1-2。
2-2
void ADC_ChannelConfig(ADC_ID_t adcId, const ADC_ChannelConfig_t* channelConfig)
通道配置和选择。3个位域。1.是否开启差分模式 2,。通道P选择 3.通道N选择(开启差分)。
3.ADC命令缓冲寄存器
3-1
void ADC_TDGTriggerConfig(ADC_ID_t adcId, const ADC_TDGTriggerConfig_t* triggerConfig)
配置触发模式为循环模式或映射模式,并将BUFF缓冲寄存器与对应通道连接。若为循环模式,则6个BUFF需与TDG的trig0的通道连接,若为映射模式则BUFF和TDG对应的trig通道连接,且转换结果会推入到FIFIO中。
4.ADC比较寄存器
2个位域。分别为CVL和CVH的值, 即比较电压的低值和高值,输出电压与这些值比较满足配置的条件后产生中断或DMA请求。
4-1 
void ADC_CompareConfig(ADC_ID_t adcId, const ADC_CompareConfig_t* compareConfig)
配置比较方式和比较值。CFG1个:1.配置输出和比较器的比较并产生中断或DMA的方式(a.关闭比较器 b.低于CVL触发 c.高于CVL触发 d.等于CVL触发 e.在CVL和CVH之间触发 f.超出CVL和CVH触发) CV2个:CVL和CVH的值配置。
5.ADC参数寄存器 
1个。即FIFO的配置容量大小。
5-1
uint32_t ADC_GetFifoSize(ADC_ID_t adcId)
返回FIFO的配置容量大小。1个。
6.ADC_FIFO配置寄存器
3个。1.为已存入字节数,只读。 2.FIFO水位,即触发中断/DMA时的存入字节数。 3.配置FIFO的容量字节数。 FIFO(先入先出)在存入数据满时会拒绝新数据的传入。
6-1
void ADC_FifoDepthRedefine(ADC_ID_t adcId, uint8_t fifoDepth)
配置FIFO的容量字节数。 1个。
6-2
void ADC_FifoWatermarkConfig(ADC_ID_t adcId, uint8_t fwmark)
FIFO水位,即触发中断/DMA时的存入字节数。1个。
6-3
uint32_t ADC_GetNumOfFifoData(ADC_ID_t adcId)
读取FIFO已存入字节数。1个。
7.ADC中断使能寄存器
6个。FIFO水位中断、FIFO溢出中断、 触发完成中断、电压比较器中断、FIFO水位DMA、触发冲突错误中断使能。
7-1
void ADC_DmaRequestCmd(ADC_ID_t adcId, ControlState_t cmd)
FIFO水位DMA使能。1个。
7-2
void ADC_IntMask(ADC_ID_t adcId, ADC_INT_t intType, IntMask_t intMask)
中断屏蔽,即使能对应中断。 5个。
8.ADC软件触发寄存器
1个,置1触发ADC转换。
8-1
void ADC_SoftwareTrigger(ADC_ID_t adcId)
软件触发ADC,置1触发ADC转换。1个。
9.ADC数据寄存器
1个。ADC转换的转换结果和对应的通道号。
9-1
uint32_t ADC_GetConversionResult(ADC_ID_t adcId)
1个。获取ADC转换的转换结果和对应的通道号。
10.ADC状态寄存器
10个。 FIFO水位状态、溢出状态、ADC完成转换中断、比较器中断、DMA请求中断、FIFO准备就绪、校验准备就绪、ADC空闲、ADC循环状态机返回空闲、ADC触发错误状态。
10-1
FlagStatus_t ADC_GetStatus(ADC_ID_t adcId, ADC_Status_t statusType)
获取ADC对应状态。10个。
10-2
void ADC_IntClear(ADC_ID_t adcId, ADC_INT_t intType)
清除对应中断的状态标志位。 5个。
10-3
FlagStatus_t ADC_GetIntStatus(ADC_ID_t adcId, ADC_INT_t intType)
获取对应中断的状态标志位。 5个。
11.ADC校验值寄存器
1个。ADC自校验的校验值。无相关封装函数。
X:通用函数
void ADC_InstallCallBackFunc(ADC_ID_t adcId, ADC_INT_t intType, isr_cb_t * cbFun)
void ADC0_DriverIRQHandler(void);
static void ADC_IntHandler(ADC_ID_t adcId);