找答案的高端用户(找答案钻石及双钻级别的用户)将尽可能从此问题下的所有回
答中,为您推荐最佳答案。届时您可以根据推荐数采纳答案。
如果自提问时间起7天内您仍无法选出最佳答案,您可以选择“无满意答案”关闭此问题。
系统时钟仅仅只需要勾选一个M存储区(一个字节),编译将硬件下载到cpu就可以调用了。
采用其它方式也可以,只是需要一些简单的计算。一般在循环定时中断,如OB35中定义循环中断时间mS单位,并进行循环中断的累加达到需要的时间脉冲,这种脉冲个数数量没有限制。
补充问题回复:
曾经将这2个时间时间做过仿真,仿真过程看不出有什么不同。
中断的概念你应该清楚,它优先与其它程序的执行,但是,无论如何最终还是需要回到程序的扫描机制中来。
通过自加1的方式。在OB35中执行下述程序,M3.3为MB3的第3位。如果MB3为0,下述程序执行8次才能使M3.3为1,再执行8次才能使M3.3为0,即M3.3为1,则MB3为0000 1000:
L MB 3
L 1
+I
T MB 3
OB35默认的中断周期为150ms。中断8次,即150ms x 8=1200ms(1.2s),即每隔1.2s激活1次M3.3。
那么,取M3.0则是150ms,M3.1是300ms等等
在OB1中编程,扫描周期默认是100ms,那么M3.0是100ms,M3.1是200ms等等
OB32默认的是1000ms的扫描周期。
补充:
不管你用哪种方式计时,多高的精度,只要在程序中使用,那多少都会受扫描周期的影响。
如果说非要有个精度最高的,个人认为应该是定时中断OB10-OB17,但是它的周期应该满足不了你的需求,并且还需要修改硬件组态。
首次回答问题,获得
双倍西币积分!
立即成为技术知识分享的一员!
找答案微信小程序
提问
搜索
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!