昨天晚上,看到一个网友的提问:“说需要将一个变化了的数据,按规定的定时时间有规律存放到一个连续的数据寄存器地址中、、、、、、”。类似处理这样的程序虽然有很多种编程方法,但我想了想,认为这样的方法可以测试一下。

编程思路:

1)  既然是定时存放数据,那做一个定时中断正好符合要求。新建一个定时中断,SMB34该定时中断时间以1mS为最小单位(最大255mS),按网友要求设置为1000mS = 1秒需要10次中断后再采集一次数据。

2)  因为需要将这个变化了的数据,按每秒钟时间逐个存放,使用启用指针编程方法又比较合适。假设,将采集的数据依次逐个存放到指针的起始首地址VD100中,并存放为30个数据。

3)  当数据存放个数到达第31个时,第一个存放的数据将被覆盖新数据值,如此循环。

编程:

1)  在子程序中调用定时中断,SMB34 = 100(mS),中断事件号10,开中断

2)  在主程序初始该子程序

3)  在中断程序中比较数据采集

定义定时中断子程序:

在主程序中调用定义定时中断子程序:

在中断子程序编辑数据采集:VB0存放定时中断次数;VB1存放采集数据个数

将上述程序编译、保存后下载到cpu,新建“状态图表”,启用监控,为方面VD6的数据输入一些随机数据编辑一个小程序在主程序中,这样VD6的数据以每秒1.2递增,当数据大于25.0时,重新返回到1.2开始重复过程。图示:

   从状态图表中可以看到VD100的数据已经被第2次数据采集所覆盖了新值,本程序仅仅是我理解网友提问后自己的思路,若有出入,望那位网友看到后指出,并加以修改。

  • UC3846控制芯片工作原理控制图 逆变焊机原理与用途
  • 数字万用表电阻档测试二极管正反向没有阻值(使用万用表测量二极管的正向电阻,为什么各档)
  • 学单片机需要学数电模电吗(学单片机要先学数电模电吗)
  • 电工怎么选择适合自己用的万用表(电工初学者买什么样的万用表好)
  • 单片机需要同时运行多个任务怎么办(单片机怎么同时执行多个任务)
  • 电机保护的方案取决于负载的机械特性
  • 绝缘电阻表正负搭接不复零位是怎么回事
  • 短路怎么用万用表查