完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
求助论坛的大大,我百度了好多案例,感觉都不合适,也许是我不会搜索 。现在有2个按键,3个LED灯,当S1 长按5秒后,然后间歇的安S2按键,3个LED灯会有2的3次方=8个变化。请问下,这个按键实现我想用定时器实现,应该怎么写?求指导或者例子也行,或者有哪个帖子适合的,麻烦网址告知一下。先谢谢各位了。 |
|
相关推荐
3个回答
|
|
定时器只用用来设定某一个时间片到达后就进入中断,其实就是相当于一个延时~只是用了时间片的思想啦~下面是我常用的一段扫描按键的方法~
/***按键扫描******/ void KeyScan() { static unsigned char state=0; unsigned char temp; if(key1==0) temp=key1_Value; else if(key2==0) temp=key2_Value; else if(key3==0) temp=key3_Value; else if(key4==0) temp=key4_Value; else temp=0; switch(state) { case 0: if(temp!=0) state=1; break; case 1:state=2; break; case 2: if(temp!=0) {state=3; KeyPress=temp;} else state=0; break; case 3: if(temp==0) {HandleKeyPress(); state=0;} / /按键扫描后的处理 break; } } 你只需要在定义一个变量,如ms_1=10,让它在中断里面做减减~然后用 if(ms_1<=0) { KeyScan(); ms_1=10; } 这样就可以扫描按键实现消抖。。。。中断一般也就这么用的吧。。。看不懂楼主的问题,希望对你有用~
最佳答案
|
|
|
|
先判断出按钮的按下动作,然后计数,根据定时器的定时时间计时就行了吧
|
|
|
|
非常感谢。磕磕碰碰的终于自己搞定了一个小程序。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
549 浏览 2 评论
《DNK210使用指南 -CanMV版 V1.0》第九章 打印输出实验
339 浏览 0 评论
stm32f407+ksz8863rlli概率性ping不通
1049 浏览 1 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-常见网络服务搭建之NFS服务搭建
493 浏览 0 评论
求助:辉芒微芯片 FDM B11GBMH 的信息及开发环境安装
570 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11333 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-9-30 23:00 , Processed in 0.860714 second(s), Total 75, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号