如何使用一个定时器,分别统计两个输入值的输入时间?

2019-08-22 14:50发布

假设MCU只有一个100ms中断一次的定时器可以使用,现在有两个输入信号single1,single2同时进行输入,每个输入值的取值为0或1
现在的问题:
1.对于每个输入,当输入值为1时开始计时,统计10s内输入值为1的个数?
2.对于每个输入,检测到输入值为1时开始计时,10s后打印一句话至串口,同时停止计时。
对于上述两个问题,应该如何处理?不使用实时操作系统。


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
13条回答
操作系统
1楼-- · 2019-08-23 07:53
用一个定时器,做出多个软件定时器,定时精确度1毫秒.你想怎么玩都行.
hechuanxi0312
2楼-- · 2019-08-23 11:33
 精彩回答 2  元偷偷看……
正点原子
3楼-- · 2019-08-23 11:43
不知道你信号 的频率是多少,而且定时器只能定时100ms中断一次,使用限制比较大。另外,你定时器到底支不支持输入捕获?
正点原子
4楼-- · 2019-08-23 13:33
太多未知条件,很**。
hechuanxi0312
5楼-- · 2019-08-23 17:34
正点原子 发表于 2017-4-9 18:47
不知道你信号 的频率是多少,而且定时器只能定时100ms中断一次,使用限制比较大。另外,你定时器到底支不支 ...

定时器是支持输入捕获的,其实我是想知道如何只使用一个定时器,做成可以满足其他功能需要的软件定时器。
操作系统
6楼-- · 2019-08-23 18:14
本帖最后由 操作系统 于 2017-4-10 00:06 编辑
hechuanxi0312 发表于 2017-4-9 14:50
应该怎么做?

软定时器,很多的OS里面都会有的呀.
startOsTimer(1000,function,1);
意思是 定时 1000毫秒后,执行function,只执行一次.有了它,你再也不用愁定时器不够用了.我就是这么干的.呵呵..

一周热门 更多>