完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
请教各位大神,我在用CY方案时,需要做一个按键的短按和长按功能,一直没成功,代码如下:
if (index == 0x00) // 按键按下 { f1_key_pressed = TRUE; Pageup_key_MS ++; } if (f1_key_pressed) { if (Pageup_key_MS >= 1000) { index = 0x0B; add_queue(index); Pageup_key_MS = 0; } if (Pageup_key_MS < 200) { index = 0x0C; add_queue(index); } } 不管是按键按一下松开还是长按,Pageup_key_MS总是只加1, 请问给位大神,怎样让按键按下时,Pageup_key_MS一直加? |
|
相关推荐
4个回答
|
|
|
|
|
|
你的判断按键的变量index和下面具体操作的index冲突了,按键按下Pageup_key_MS +1之后,直接就进入 if (Pageup_key_MS < 200)里面,然后 index = 0x0C;index的值就不是0了,长按和短按都进不了if (index == 0x00),必须松开重按才会进入,所以Pageup_key_MS不会连续加。把判断按键if (index == 0x00)换成if (xx == 0x00),变量换个名字应该就可以了。
|
|
|
|
谢谢!应该是我程序写错了,不能这么表达
|
|
|
|
yijin1989616 发表于 2017-5-27 11:34 谢谢,应该是我程序写错了,不知道你有没有做过按键短按长按这方面的,可否发给我参考下? |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
503 浏览 0 评论
求助一下关于51系列单片机的Timer0的计时问题,TH0、TL0+1的时间是怎么算的?
1756 浏览 1 评论
【RA-Eco-RA4E2-64PIN-V1.0开发板试用】开箱+Keil环境搭建+点灯+点亮OLED
1183 浏览 0 评论
【敏矽微ME32G070开发板免费体验】使用coremark测试敏矽微ME32G070 跑分
1053 浏览 0 评论
【敏矽微ME32G070开发板免费体验】开箱+点灯+点亮OLED
1287 浏览 2 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12022 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 19:51 , Processed in 0.837722 second(s), Total 77, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号