问一个程序性能方面的问题
选择通道保存, 保存设定一个大的周期, 每个周期中间只有一个小段在记录数据, 而两个记录数据点之间还有一个时间间隔,
现在保存采用了一个状态机来实现, 用事件结构控制到底保存那些通道, 记录数据的时间间隔等等,
我的问题,现在的定时不大准确, 我想要实现最低100ms的比较精确的定时,但是, 如果把保存状态机中间的延时去掉,CPU占用率会很高,将两个都改为5ms延时的话,我得到的结构也是相对的很不精确, 还有一个就是说,计算出来要保存10个数据的话,有时只有9条数据,
我知道condense array这个vi调用时候占用资源比较大,但是不知道怎么修改,请教下各位吧,
我的问题是这样记录下来的时间间隔不准, 我最低要求实现比较准确的100ms的时间间隔,文件格式请见附件
首先建议你先将程序结构进行优化和调整,个人觉得现在的程序结构并不是很好,另外,Time sequence eee.vi中状态机的移位寄存器也没有初始化(可能是您所需的?)
关于精确定时,您需要在循环结构中放置“等待.vi”来实现,一方面运行CPU有时间“休息”,降低CPU使用率;另一方面,也能实现ms精度的定时
你说的等待.vi是不是就是 延时函数? 这个我上面说过了,就是如果把保存状态机中间的延时去掉,CPU占用率会很高,将两个都改为5ms延时的话,我得到的结果也是相对的很不精确,
至于移位寄存器初始化,这个在我这里不能初始化,不然状态基本上就切换不了了。
至于你说的程序结构问题,我承认是不好,但是具体怎么改,也不大清楚;