2812AD 问题

[复制链接]
530|2
 楼主| Brand2 发表于 2016-12-14 21:08 | 显示全部楼层 |阅读模式
2812 AD选择级联模式时怎么软件启动AD,是通过AdcRegs.ADCTRL2.bit.SOC_SEQ1=1这个语句吗?我用CpuTimer0定时采样,定时器中断程序

StopCpuTimer0();
        AdcRegs.ADCTRL2.bit.RST_SEQ1=1;                //复位序列发生器
        AdcRegs.ADCTRL2.bit.SOC_SEQ1=1;                        //进入定时器0一次,启动一次定时器中断
        CpuTimer0Regs.TCR.bit.TIF=1;                        //清除定时器中断标志
        CpuTimer0Regs.TCR.bit.TRB=1;                        //重新装载定时器数值
        StartCpuTimer0();                                                //开定时器定时
        PieCtrlRegs.PIEACK.bit.ACK1=1;                        //允许响应同组其他中断
复制代码
在ADC中断程序里加入了调试程序段,采集256点后程序停止在调试程序段中的while(1)出,index值也为256,证明是进入ADC中断了,可是采样的256点是同样的值是为什么?!输入的为50Hz的0-2.5V的正弦波

调试程序段:

#if 1
        if(index>=256)
        {
                StopCpuTimer0();
                while(1);
        }
#endif
Soraka 发表于 2016-12-14 21:25 | 显示全部楼层
同样数值,数值是多少?
Garen2 发表于 2016-12-14 21:51 | 显示全部楼层
AD的外部接口一直在采集,这个速度是根据你设置的ADC的时钟频率来决定的,而ADC的转化是你控制的,第一控制转化速度,第二控制转化顺序。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

157

主题

824

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部