恭喜,你发布的帖子
发布于 2023-01-19 21:26:59
6楼
开始间隔时间指令的最大计时间隔为2的32次方,即49.7日。 程序上可以这样写:当间隔时间=1天对应的毫秒时,上升沿双整数加1,间隔时间清0,并重新以下开始间隔时间指令.
一个双整数能存储的天数多长, 天荒地老.
没法捕捉到等于瞬间。你改改。
当扫描周期小于1毫秒的时候始终都知道什么时候相等。当扫描周期大于1毫秒的时候,有机会把等于这个跳过了。如果扫描时间10毫秒,而且你改用大于等于判断了,又出现另一种情况。第n+5毫秒的时候,检测到第一次天数大于等于了,此时你清零。清零是什么操作?把5毫秒都清掉了?
不是这么用的。看看我累积运行时间那个库是怎么做的?
我的做法是把Bitime得到的值加n。
当第n+5毫秒的时候实施了天数加1之后把以前Bitime值加n,结果当时立即的Citime值就变成5。可以当时从5开始计时,并非从某0开始计时。保住了这5毫秒。这个做法,你可以在轻松的时候才去执行一些定时指定的操作,这5毫秒(或者很多很多毫秒)仍然登记在案。不影响下次的计数n。
请填写推广理由:
分享
只看
楼主