OpenEdv-开源电子网

标题: 请问一个简单的问题 [打印本页]

作者: 折腾无止境    时间: 2017-12-12 14:08
标题: 请问一个简单的问题
现在我要做一个锁键

就是按下锁键三秒才执行以下动作,短按锁键不到3秒是不执行的,

用定时器做,不知怎么做?望路过的指点一下,谢谢!

下图是我写的,不对,一按下就执行了,只是延时了一点!

作者: jkd405    时间: 2017-12-12 14:08
定义一个全局变量初始化成0

定时器可以开10ms一次。

定时器中断里面判断IO状态,如果按下计数++,否则清零

计数达到300,置按键标志并停止判断动作。

主函数中判断标志后执行动作,结束后清标志,清计数
作者: 锅里的水煮鱼    时间: 2017-12-19 18:33
本帖最后由 锅里的水煮鱼 于 2017-12-19 18:35 编辑

帮顶哈

作者: 炫色康康    时间: 2017-12-19 19:56
在你延时之后再加个判断,执行之后复位,这类似于消抖,用定时器就定义个变量然后在定时器中断里数
作者: 595953427    时间: 2017-12-20 16:18
提示: 作者被禁止或删除 内容自动屏蔽




欢迎光临 OpenEdv-开源电子网 (http://www.openedv.com/) Powered by Discuz! X3.4