完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
代码就五行麻烦各位大神瞅两眼..小弟感激不尽.
就是有时会按下去+1 然后抬手时再+1 基本出现+2的情况都是 释放按键的时候多加了1 而且从来没有+3的情况... 但是我把delay调成50000就没有+2的情况了.. 望大家不吝赐教。 k1是按键 delay是延迟 作用是消抖 P0是数码管的管脚 a数组就是不同的数字 main里就是while(1) push(); void push() { if(k1==0) { delay(1000); P0=a[i++]; if(i>9) i=0; while(!k1); } } |
|
相关推荐
2个回答
|
|
最后的while(!k1);之后最好加一个小延时,然后再执行一次while(!k1);,前面的延时可以缩短,防抖是防抖,判断按键释放是判断按键释放,你现在的情况有可能是没能正确的判断按键释放,假如前面的防抖延时短了,结果后面判断按键释放时,按键的抖动就当成了释放,之后则又检测到按键按下,这样就判断成多次按键了
最佳答案
|
|
|
|
人中狼 发表于 2017-7-10 11:04 恩恩 我的防抖少了一个步骤 我改成底下这样就可以了 感觉和你说的是一个意思 谢谢啦~ if(k1==0) { delay(1000); if(k1==0) { P0=a[i++]; if(i>9) i=0; while(!k1); } } |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
820 浏览 0 评论
《DNESP32S3使用指南-IDF版_V1.6》第十一章 KEY实验
388 浏览 0 评论
783 浏览 0 评论
801 浏览 2 评论
飞凌嵌入式-ELFBOARD-ELF 2硬件知识分享-最小系统原理
466 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11929 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-12 10:10 , Processed in 0.615036 second(s), Total 45, Slave 37 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号