新手入门
- 积分
- 19
- 金钱
- 19
- 注册时间
- 2018-7-5
- 在线时间
- 2 小时
|
3金钱
//#define U1 6
//#define U2 5
//#define U3 4
//#define U4 3
static int U1,U2,U3,U4; //17/18/19/20引脚测量
void Recognize(void)
{
if(nrf_gpio_pin_read(17)==1)
{
}
else
{
}
}
是这样的,测量17/18/19/20号引脚的高电平来定义U1/U2/U3/U4的值,定义的原则就是:
17引脚对应U1、18引脚对应U2、19引脚对应U3、20引脚对应U4、
17——20引脚哪个最先为高电平,对应的U1_U4的值为6
第二次检测引脚为高电平的,对应U1-U4的值为5,以此类推
17——20引脚最终会全为高电平,只不过顺序不一样,根据顺序定义U1-U4
新手 谢谢各位
|
最佳答案
查看完整内容[请看2#楼]
我已经解决这个问题了 我的方法原理是利用排列组合方法 4个引脚有24中可能 自动识别引脚没问题
还有一种别人推荐的 定义一个数组,每一位都记录是否中断且中断的顺序是第几,然后最后一位记录中断了几个就可以用来判断第几了 比如a[5]=(2,1,0,0,2)就说明第二个引脚顺序是第一,第一个引脚是第二,其他两个没触发,最后说明共有两个引脚触发了(但是这个问题是中断顺序不清楚)
|