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

2019-12-10 18:14发布

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

怎么实时计算当前时刻往前推1秒内,高电平持续了多长时间?可以不用很精确,10毫秒级就可以,各位兄台有没有巧妙的算法
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
26条回答
浮华一生
2019-12-13 00:30
本帖最后由 浮华一生 于 2019-10-7 09:56 编辑

一个边沿触发中断,一个1ms 定时器。  上升沿到来 记录时间 t1, 下降沿记录为t2, 任意时刻记录为t
if (t > t2){
        if ( ( t - t2 ) > 1000) {
                  前1s一直是低
        } else if ( (t - t1) < 1000) {
                高电平时间为 t2-t1
        } else {
                高电平时间为  1000 - (t -t2)
        }
} else {
        .......
}

还有其他情况自己推一下。
(编辑原因,手滑提交了)

一周热门 更多>