之前的一篇博文也是关于N76E003的ADC的多通道采集,但是该版本还是存在一些问题,后面也没有想起来去改它,所以,这里重新对这些处理的方法做一些完善。
首先是配置方面,配置是非常简单的,在初始化的时候先将一个通道初始化好,然后定义使用一个全局变量gAdcChannel用来作为轮流的标志位,该MCU的ADC的速度还是比较不错的,大概3-4us就能完成一次ADC的采样,但是建议不要使用新唐自己提供的Demo,因为他是使用while()阻塞等待的方式,直到ADC采样出来了结果才会进行下一步的操作。
void adcInit(void)
{
Enable_ADC_BandGap;
gAdcChannel=1;
clr_ADCS;//或者clr_ADCF;这里就看你使用的是中断的形式还是轮询的形式
set_ADCS;//如果你使用的是官网的没有做任何修改的BSP的话,这句一定要加上,因为
//单独Enable_ADC_BandGap是不会启动ADC转换的,后面的也是一样的
}
void sysAdcCheck(void)//ADC数据处理的函数 轮询的方式,如果是中断的方式就直接是在中断处理函数中
{
u16 adcTempData;
if(ADCS == 0)
{//adc 数据已经采集出来了
adcTempData = (ADCRH<<4)+ADCRL;//得到结果
clr_ADCEN;//还没有处理完数据的时候先将ADC关闭掉,
switch(gAdcChannel)
{
case 1:
Eanble_ADC_AIN2;
set_ADCS;//建议最