|
如题:ADCBUF为采样的缓存器。当产生ADC中断时,将采样回来的值转换后存入。
小弟不解的是,ADCBUF缓存器一共有16个,从ADCBUF0到ADCBUFF十六个。当有多路采样时,是怎么将值存入的?是按AN0对ADCBUF0?AN1对应ADCBUF1?(有人说是这样的!)
但是在其他地方有看到说不是按照这样的,可是没有说是按照什么样的。
下面有一段程序就不是按照一一对应的;
寄存器配置
ADCON2=0x0308; //选AVDD和AVSS,不扫描,选择四个通道,四个采样转换过程后中断,16字缓冲器,始终使用MUXA的设置
ADPCFG=0x0006; //使能AN0,AN3,AN4,AN5为采样输入
ADC中断数据处理
Uo_temp=Seqenc(ADCBUF0,ADCBUF4,ADCBUF8);
Uo_Sum+=Uo_temp;
Io_temp_1=Seqenc(ADCBUF1,ADCBUF5,ADCBUF9);
Io_Sum_1+=Io_temp_1;
Io_temp_2=Seqenc(ADCBUF2,ADCBUF6,ADCBUFA);
Io_Sum_2+=Io_temp_2;
Seqenc(。。。)是一个取平均值函数;
上面的程序ADCBUF应该是按照采样端口的优先级别分配ADCBUF,然后按顺序的。
可是小弟试过这样写程序好像才采不到值。
哪位大师帮忙给分析分析 |
阿莫论坛20周年了!感谢大家的支持与爱护!!
曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……
|