完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
static u8 read_mpr121_reg(u8 device, u8 addr) {
u8 dat; IIC_Init(); IIC_Start(); IIC_Send_Byte(device); IIC_Wait_Ack(); IIC_Send_Byte(addr); IIC_Wait_Ack(); IIC_Start(); IIC_Send_Byte(device + 0x01); IIC_Wait_Ack(); //dat=read_byte(); //IIC_NAck(0); dat = IIC_Read_Byte(0); IIC_NAck(); IIC_Stop(); return dat; } /** * ¶áè¡μ±Ç°μÄ°′¼ü * @return 0xff μ±Ç°Ã»óD°′¼ü°′Ï * 0~11 μ±Ç°±»°′ÏÂμÄkeyÖμ */ static u8 get_key() { u8 count = 0; u8 i = 0; u32 dat; dat = read_mpr121_reg(touch_shield, 0x01) << 8; dat = dat | read_mpr121_reg(touch_shield, 0x00); for (i = 0; i < 12; i++) { if ((dat & (1 << i))) { count++; } } i = 0; if(count == 1) { while((dat & (1 << i)) == 0) { i++; } return i; } return 0xff; } 以上是mpr121处理程序的一部分,红色的两行程序我不是很明白,不知道他是怎么获取按键值得,请教各位了 |
|
相关推荐
1个回答
|
|
红色部分是获取按键值的高8位和低8位仪器拼接成一个32位的数据,然后再对拼接的32为数据进行位判断,看哪一位为1,则返回位的计数值。
|
|
|
|
只有小组成员才能发言,加入小组>>
9254 浏览 0 评论
8603 浏览 0 评论
13141 浏览 0 评论
3933 浏览 0 评论
4226 浏览 0 评论
830浏览 1评论
799浏览 1评论
795浏览 1评论
1302浏览 1评论
2004浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-4-20 06:07 , Processed in 1.286113 second(s), Total 70, Slave 58 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号