完善资料让更多小伙伴认识你,还能领取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进行移位
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-spi编程示例之spi编写程序
575 浏览 0 评论
《DNK210使用指南 -CanMV版 V1.0》第三十七章 image图像对比实验
554 浏览 0 评论
500 浏览 1 评论
482 浏览 0 评论
关于RT-Thread studio添加freemodbus控件失败的问题
817 浏览 1 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11645 浏览 31 评论
浏览过的版块 |
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-9 01:34 , Processed in 0.580180 second(s), Total 72, Slave 55 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号