如何在中断模式下实现ad采样 dsp

如何在中断模式下实现ad采样 dsp,第1张

ADCLO应该接模拟地。如果模拟地干扰大,结果也相当不准确:我的板子ADCLO接了模拟地,由于模拟地干扰大,采集到的数据范围有1000多的随机变化。如果ADCLO不接地悬空,采集结果就不正确。我也将ADCLO悬空测过,我的为1V左右,有时为2V左右。

pLc在的定吋中断如你所100ms话,就是1s钟要执行10次。在正常顺序执行时到100ms中断原来次序,执行中断程序,可能几毫秒就执行完了,返回原中断点,继续原来顺序,再到100ms时,又跳到中断程序执行,几毫秒完成,又返回中断点,继续原来顺序。执到又一个100ms的周期计时到。

在中断程序的设计中,100ms的周期使用不能编的太大,如果这个周期的程序执行假如用了100ms的话,其他程序就没法执行了,就会就出现程序执行溢出,或者叫作崩溃。

1中断服务程序里面尽量不要有过多的程序,只置标志位。其他的在主循环里面轮询标志位来做。2AD处理程序超过1ms,也是可以使1ms定时器按时触发的。具体看你中断服务程序里面怎么写。3通过SPI读取AD数据,按照我的理解,你是6747外接外部AD采样芯片,然后芯片通过SPI把AD转换信号发送给6747。如果是这样的话,应该查阅AD采样芯片发送数据的频率是多少。如果它每隔4毫秒发一次采样信号,你的定时器也应该调到4毫秒。还有一种方法就是相应的SPI管脚接到示波器上,看每隔多少时间发送一次。4你可以使用CCS的profile->clock功能来查看每个功能模块所消耗的指令周期数。结合硬件仿真加断点,你可以很直观的看到哪里是你处理时间最长的地方。4ti官网、随板子附送的光盘里及其他地方有很多6747的例程。通过学习、模仿例程可以加快你学习的速度。

工欲善其事必先利其器。初始化子程序adinitial()是用于做准备的,设置一下AD模块,打开这个AD,设置输入的方式和采样转换时间什么的。所以这叫“初始化”。

而中断服务程序就是实际执行AD采集的任务的。

有AD中断发生,单片机自动标志AD标志位,然后触发中断服务程序。

首先,if(8<=RESULT_temp[i]<=80)不符合C语言标准写法,可能不是你想要的结果。

应该写成:

if((8<=RESULT_temp[i]) && (RESULT_temp[i]<=80))

以上就是关于如何在中断模式下实现ad采样 dsp全部的内容,包括:如何在中断模式下实现ad采样 dsp、PLC定时中断的问题、求助likyo,6747 AD采样,定时器中断等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9666922.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存