完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
连续将key4值通过T0中断一位一位用“或运算“写入char 型变量keybuf中。这与其他地方对不同变量的运算描述不符,请大神们赐教。小弟拜谢。
void Interrupttimer0() interrupt 1 { static unsigned char keybuf = 0xFF; //按键扫描缓冲区,保存一段时间内的扫描值 TH0 = 0xF8; TL0 = 0xCD; keybuf = (keybuf << 1) | KEY4; //只取KEY4为例,缓冲区左移一位,并将当前扫描值移入最低位 if (keybuf == 0x00) { //当连续8次扫描值都为0,即16ms内都只检测到按下状态时,可认为按键已按下 KeySta = 0; //按键状态值为按下 } else if (keybuf == 0xFF) { //当连续8次扫描值都为1,即16ms内都只检测到弹起状态时,可认为按键已弹起 KeySta = 1; //按键状态值为弹起 } |
|
相关推荐
1个回答
|
|
要看你的bit是第几位了吧,这个要你人为的确认,再转成char进行移位
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
202 浏览 0 评论
556 浏览 2 评论
ESP32开发中,使用ADF环境,系统报错I2C Bus WriteReg Error和I2C Bus ReadReg Error
495 浏览 1 评论
在ZYNQ上跑超炫酷GUI!手把手教你移植LVGL到ZYNQ平台!
709 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-开发板适配之FLEXCAN
888 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12459 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-3-6 18:19 , Processed in 0.626468 second(s), Total 69, Slave 53 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191