TI中文支持网
TI专业的中文技术问题搜集分享网站

28335AD采集问题

我按照官网提供的例程编写了AD采集程序,当输入电压为0时,采集正确。当输入电压不为0时,假如我从CCS的registers中读到 AdcRegs.ADCRESULT0的结果为0x3270,在程序中,我设置一个变量=AdcRegs.ADCRESULT0>>4,我把 AdcRegs.ADCRESULT0添加到Expressions中,从Expressions中读取到的AdcRegs.ADCRESULT0值为 12400,0x3270对应的十进制值应该是12917,为什么从Expressions中读取的值有误差呢?经过反复试验,发现不管输入的是什么值 (0除外),从registers中读取到的和从Expressions中读取到的总是有误差。
请问大师们,这应该和代码没有什么关系吧?问题出在了哪里呢?

mangui zhang:

个人觉得你通过CCS读取到的 AdcRegs.ADCRESULT0值和赋给变量的值不是同一时刻读到的

不知道你的ADC采集的值有没有500这样的变化范围

我按照官网提供的例程编写了AD采集程序,当输入电压为0时,采集正确。当输入电压不为0时,假如我从CCS的registers中读到 AdcRegs.ADCRESULT0的结果为0x3270,在程序中,我设置一个变量=AdcRegs.ADCRESULT0>>4,我把 AdcRegs.ADCRESULT0添加到Expressions中,从Expressions中读取到的AdcRegs.ADCRESULT0值为 12400,0x3270对应的十进制值应该是12917,为什么从Expressions中读取的值有误差呢?经过反复试验,发现不管输入的是什么值 (0除外),从registers中读取到的和从Expressions中读取到的总是有误差。
请问大师们,这应该和代码没有什么关系吧?问题出在了哪里呢?

mangui zhang:

个人觉得你通过CCS读取到的 AdcRegs.ADCRESULT0值和赋给变量的值不是同一时刻读到的

不知道你的ADC采集的值有没有500这样的变化范围

我按照官网提供的例程编写了AD采集程序,当输入电压为0时,采集正确。当输入电压不为0时,假如我从CCS的registers中读到 AdcRegs.ADCRESULT0的结果为0x3270,在程序中,我设置一个变量=AdcRegs.ADCRESULT0>>4,我把 AdcRegs.ADCRESULT0添加到Expressions中,从Expressions中读取到的AdcRegs.ADCRESULT0值为 12400,0x3270对应的十进制值应该是12917,为什么从Expressions中读取的值有误差呢?经过反复试验,发现不管输入的是什么值 (0除外),从registers中读取到的和从Expressions中读取到的总是有误差。
请问大师们,这应该和代码没有什么关系吧?问题出在了哪里呢?

w zh:

回复 mangui zhang:

谢谢回复!

为了防止出现这种情况,我在AD的中断服务程序中将清中断一行屏蔽掉了,在AD的中断服务程序中加断点,可以看到中断服务程序仅执行了一次。这种情况下,应该不存在两个值不是同一时刻的幅值的情况吧?

赞(0)
未经允许不得转载:TI中文支持网 » 28335AD采集问题
分享到: 更多 (0)