测试代码如下,(包括三路ADC的初始化、三路ADC数据串口打印) - //adc.c文件代码:
- #include "bsp/adc.h"
- //ADC转换完成标志位
- bit AdcFlag = 0;
- /*****************************************************
- *函数名称:void ADC_Init(unsigned int Channel)
- *函数功能:ADC初始化
- *入口参数:Channel
- *出口参数:void
- *****************************************************/
- void ADC_Init(unsigned int Channel)
- {
- ADCCON = 0X80|Channel;//开启ADC,ADC采样频率为2M ,选择Channel位ADC采样口
- if(Channel<8)
- {
- ADCCFG0 = 1<<Channel; //设置Channel作为采样口
- }
- else
- {
- ADCCFG1 = 1<<(Channel-8); //设置Channel作为采样口
- }
- IE |= 0X40; //开启ADC中断
- EA = 1;
- }
- /*****************************************************
- *函数名称:unsigned int ADC_Read(void)
- *函数功能:ADC读取数据
- *入口参数:void
- *出口参数:unsigned int
- *****************************************************/
- unsigned int ADC_Read(void)
- {
- ADCCON |= 0X40; //开始ADC转换
- while(!AdcFlag); //等待 ADC转换完成;
- AdcFlag = 0;
- return (ADCVH<<4)+(ADCVL>>4);
- }
- /*****************************************************
- *函数名称:ADC_Interrupt(void) interrupt 6
- *函数功能:ADC中断函数
- *入口参数:void
- *出口参数:void
- *****************************************************/
- void ADC_Interrupt(void) interrupt 6
- {
- ADCCON &= ~(0X20); //清中断标志位
- AdcFlag = 1;
- }
|