//************************************************************ // Copyright (c) 深圳市赛元微电子有限公司 // 文件名称 : sc92f8003_adc.c // 作者 : // 模块功能 : ADC固件库函数C文件 // 局部函数列表: // 最后更正日期: 2018/9/4 // 版本 : V1.0 // 说明 : //************************************************************* #include "sc92f8003_adc.h" /************************************************** *函数名称:void ADC_DeInit(void) *函数功能:ADC相关寄存器复位至缺省值 *入口参数:void *出口参数:void **************************************************/ void ADC_DeInit(void) { ADCCON = 0x00; ADCCFG0 = 0x00; ADCCFG1 = 0x00; ADCVL = 0X00; ADCVH = 0X00; EADC = 0; IPADC = 0; } /************************************************** *函数名称:void ADC_Init(ADC_PresSel_TypeDef ADC_PrescalerSelection, ADC_Cycle_TypeDef ADC_Cycle) *函数功能:ADC初始化配置函数 *入口参数:ADC_PrescalerSelection 预分频选择 ADC_Cycle 采样时钟周期选择 *出口参数:void **************************************************/ void ADC_Init(ADC_PresSel_TypeDef ADC_PrescalerSelection, ADC_Cycle_TypeDef ADC_Cycle) { ADCCFG1 = ADC_PrescalerSelection | ADC_Cycle; } /************************************************** *函数名称:void ADC_ChannelConfig(ADC_Channel_TypeDef ADC_Channel, FunctionalState NewState) *函数功能:ADC输入口配置函数 *入口参数:ADC_Channel ADC输入口选择 FunctionalState NewState ADCx使能/关闭选择 *出口参数:void **************************************************/ void ADC_ChannelConfig(ADC_Channel_TypeDef ADC_Channel, FunctionalState NewState) { uint8_t tmpreg; ADCCON = (ADCCON & 0xE0) | ADC_Channel; tmpreg = (0x01 << ADC_Channel); if(ADC_Channel < ADC_CHANNEL_VDD_D4) { if(NewState == DISABLE) { ADCCFG0 &= (~tmpreg); } else { ADCCFG0 |= tmpreg; } } } /***************************************************** *函数名称:void ADC_Cmd(FunctionalState NewState) *函数功能:ADC功能开关函数 *入口参数:FunctionalState NewState 功能启动/关闭选择 *出口参数:void *****************************************************/ void ADC_Cmd(FunctionalState NewState) { if(NewState == DISABLE) { ADCCON &= 0X7F; //关闭ADC模块电源 } else { ADCCON |= 0x80; //开启ADC模块电源 } } /***************************************************** *函数名称:void ADC_StartConversion(void) *函数功能:开始一次AD转换 *入口参数:void *出口参数:void *****************************************************/ void ADC_StartConversion(void) { ADCCON |= 0X40; //ADC启动转换 } /***************************************************** *函数名称:uint16_t ADC_GetConversionValue(void) *函数功能:获得一次AD转换数据 *入口参数:void *出口参数:uint16_t *****************************************************/ uint16_t ADC_GetConversionValue(void) { uint16_t temp; temp = (uint16_t)(ADCVH<<4) + (ADCVL>>4); return temp; } /***************************************************** *函数名称:void ADC_ITConfig(FunctionalState NewState, PriorityStatus Priority) *函数功能:ADC中断初始化 *入口参数:FunctionalState NewState 中断使能/关闭选择 PriorityStatus Priority 中断优先级选择 *出口参数:void *****************************************************/ void ADC_ITConfig(FunctionalState NewState, PriorityStatus Priority) { //中断使能/关闭设置 if(NewState == DISABLE) { EADC = 0; } else { EADC = 1; } //中断优先级设置 if(Priority == LOW) { IPADC = 0; } else { IPADC = 1; } } /***************************************************** *函数名称:FlagStatus ADC_GetFlagStatus(void) *函数功能:获得ADC中断标志状态 *入口参数:void *出口参数:FlagStatus ADC中断标志状态 *****************************************************/ FlagStatus ADC_GetFlagStatus(void) { return (FlagStatus)(ADCCON & 0x20); } /***************************************************** *函数名称:void ADC_ClearFlag(void) *函数功能:清除ADC中断标志状态 *入口参数:void *出口参数:void *****************************************************/ void ADC_ClearFlag(void) { ADCCON &= 0xdf; } /******************* (C) COPYRIGHT 2018 SinOne Microelectronics *****END OF FILE****/