发布于 2014-07-29 18:53:57
6楼
呵呵,8001个实数,数据量确实有点大了,一个周期内会占用CPU很多扫描时间的。
楼主:我帮你想了点办法,存储100个数据,你可以参考一下。把OB3X中断时间设置为2秒,把下面的代码黏贴进去你可以测试一下。这段代码实现数据先进先出,DBD0是最新数据,DBD4是前2秒的数据,以此类推。。。。。。希望对你有些帮助
OPN DB 1 //打开DB1
LAR1 P#396.0 //初始化地址寄存器1(定义起始地址为396)
L 99 //装载循环次数
NEXT: T LW 20 //存储当前的循环次数
TAR1 //将当前地址寄存器1的内容写到累加器1里面
L 32 //装载整数32到累加器1里面(相当于四个字节的宽度)
-D //地址偏小四个字节
LAR1 //将当前累加器1的内容写到地址寄存器1里面
L DBD [AR1,P#0.0] //装载较小的地址里面的数据到累加器1
T DBD [AR1,P#4.0] //将当前累加器1里面的数据写到较大的地址里面
L LW 20
LOOP NEXT //跳转到NEXT标签,当循环次数减至0离开循环往下执行
L "被采集数据" //装载当前采集的数据到累加器1
T DBD 0 //将当前累加器1的内容写到DBD0里面
这段代码原理:就是蚂蚁搬家,把数据依次向大的地址搬一次,先进先出,最后把最新的采集数据放在顶端。
佛对我说:“你的痛苦来自于你的欲望,没有欲望也就没有痛苦!”