打印

2812AD 问题

[复制链接]
395|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

粉丝