OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6360|回复: 6

求助 大家!众人食材火焰高

[复制链接]

2

主题

7

帖子

0

精华

新手入门

积分
19
金钱
19
注册时间
2018-7-5
在线时间
2 小时
发表于 2018-8-8 20:50:18 | 显示全部楼层 |阅读模式
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)就说明第二个引脚顺序是第一,第一个引脚是第二,其他两个没触发,最后说明共有两个引脚触发了(但是这个问题是中断顺序不清楚)
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

7

帖子

0

精华

新手入门

积分
19
金钱
19
注册时间
2018-7-5
在线时间
2 小时
 楼主| 发表于 2018-8-8 20:50:19 | 显示全部楼层
我已经解决这个问题了 我的方法原理是利用排列组合方法 4个引脚有24中可能  自动识别引脚没问题
还有一种别人推荐的  定义一个数组,每一位都记录是否中断且中断的顺序是第几,然后最后一位记录中断了几个就可以用来判断第几了 比如a[5]=(2,1,0,0,2)就说明第二个引脚顺序是第一,第一个引脚是第二,其他两个没触发,最后说明共有两个引脚触发了(但是这个问题是中断顺序不清楚)
回复

使用道具 举报

558

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
164897
金钱
164897
注册时间
2010-12-1
在线时间
2100 小时
发表于 2018-8-9 01:18:23 | 显示全部楼层
自己写代码  ,不会的话,学习我们的按键输入实验。
回复

使用道具 举报

2

主题

7

帖子

0

精华

新手入门

积分
19
金钱
19
注册时间
2018-7-5
在线时间
2 小时
 楼主| 发表于 2018-8-9 10:44:15 | 显示全部楼层
主要是  我要根据各引脚高电平的时间顺序来重新定义U1、U2、U3、U4
能提供一下思路吗
回复

使用道具 举报

1

主题

882

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3071
金钱
3071
注册时间
2018-2-7
在线时间
285 小时
发表于 2018-8-9 16:09:28 | 显示全部楼层
四个引脚通过中断来检测,然后设置一个全局统计变量如 cnt=0; 任意一个中断进去后,cnt加1,然后判断cnt的值。根据cnt的值设置Ux的值。比如18引脚中断了,cnt加1,这时候如果cnt的值为1,就把U2设置为6,如果cnt的值为2,就把U2的值设置为5.以此类推。这样当cnt的值为4时,说明按键全部按下了。将cnt清0,继续等待下一次按键。
回复

使用道具 举报

2

主题

7

帖子

0

精华

新手入门

积分
19
金钱
19
注册时间
2018-7-5
在线时间
2 小时
 楼主| 发表于 2018-8-9 18:40:22 | 显示全部楼层
HXYDJ 发表于 2018-8-9 16:09
四个引脚通过中断来检测,然后设置一个全局统计变量如 cnt=0; 任意一个中断进去后,cnt加1,然后判断cnt的 ...

任意中断进去  cnt加1 只能判断是否检测完四个引脚
但是中断的顺序必须要解决 才可以识别出来引脚
回复

使用道具 举报

558

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
164897
金钱
164897
注册时间
2010-12-1
在线时间
2100 小时
发表于 2018-8-10 01:54:28 | 显示全部楼层
SXJa 发表于 2018-8-9 18:40
任意中断进去  cnt加1 只能判断是否检测完四个引脚
但是中断的顺序必须要解决 才可以识别出来引脚

按自己的来就好了。
这样进步快。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-6-8 11:45

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表