求助:怎么计算任意时刻往前1秒内,高电平持续了多长...

2019-12-10 18:14发布

本帖最后由 ma_xiang 于 2019-10-6 14:58 编辑

怎么实时计算当前时刻往前推1秒内,高电平持续了多长时间?可以不用很精确,10毫秒级就可以,各位兄台有没有巧妙的算法
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
26条回答
OneRain
1楼-- · 2019-12-11 10:04
10ms精度不算高。。。用捕捉,或者心跳都可以实现。。。至于计时部分,没有楼上说的那么夸张,2个32位变量足够计数了!!!ms级别都可以。。。
ma_xiang
2楼-- · 2019-12-11 15:17
1a2b3c 发表于 2019-10-6 14:57
10ms为单位存储io口的值就完了,内存够多就1ms为单位。要查询的时候往前推1秒钟内的数据去看高低值是什么样 ...

嗯嗯 这样就挺好 想有没有便捷点省单片机空间的办法
ma_xiang
3楼-- · 2019-12-11 15:37
 精彩回答 2  元偷偷看……
linhao1581
4楼-- · 2019-12-11 21:12
做个1ms定时器中断,再定义一个全局变量。在中断里面判断IO口高电平,高电平变量累加1,低电平就变量减1,加到1000就是1秒,然后保持1000不变,减到0就是没有高电平。任意时候想获取信息就检测这个变量值就好。
ma_xiang
5楼-- · 2019-12-11 21:35
linhao1581 发表于 2019-10-6 15:09
做个1ms定时器中断,再定义一个全局变量。在中断里面判断IO口高电平,高电平变量累加1,低电平就变量减1, ...

那要是500ms高 500ms低不就是0了么
linhao1581
6楼-- · 2019-12-12 02:00
仔细分析了一下,我刚刚方法不可行,见笑了

一周热门 更多>