打印
[STM32F3]

这样写按键触发外部中断处理函数行不行

[复制链接]
1548|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
感觉还是不能避免重复触发中断的问题

5CDJXY){9D~AG_P05OEAA70.jpg (82.63 KB )

5CDJXY){9D~AG_P05OEAA70.jpg
沙发
平常心kxy|  楼主 | 2014-9-8 23:08 | 只看该作者
感觉应该这样

R[FTI2J@L4P`DSC6T}8@Z(Q.jpg (100.76 KB )

R[FTI2J@L4P`DSC6T}8@Z(Q.jpg

使用特权

评论回复
板凳
huzi2099| | 2014-9-8 23:08 | 只看该作者
是消抖程序怎么写的问题.

使用特权

评论回复
地板
SLHSu37| | 2014-9-9 08:59 | 只看该作者
这样写没什么问题呀

使用特权

评论回复
5
gonggu8181| | 2014-9-9 09:20 | 只看该作者
void EXTI15_10_IRQHandler(void)
{
        if(EXTI_GetITStatus(EXTI_Line10) != RESET && exitflag == 0)
        {
            
        }
}
主程序后面参考二楼就可以

使用特权

评论回复
6
m564522634| | 2014-9-9 11:49 | 只看该作者
消抖都没做你觉得行吗

使用特权

评论回复
7
diweo| | 2014-9-9 16:12 | 只看该作者
我是觉得按键没有必要用中断,扫描就可以了。

使用特权

评论回复
8
光晔秋秋| | 2014-9-9 18:53 | 只看该作者
赞同楼上,没必要浪费中断,扫描就可以了

使用特权

评论回复
9
平常心kxy|  楼主 | 2014-9-9 18:57 | 只看该作者
gonggu8181 发表于 2014-9-9 09:20
主程序后面参考二楼就可以

谢谢。这样写确实比较好。不知道用状态机怎么设计复杂的按键扫描程序

使用特权

评论回复
10
平常心kxy|  楼主 | 2014-9-9 18:57 | 只看该作者
diweo 发表于 2014-9-9 16:12
我是觉得按键没有必要用中断,扫描就可以了。

我只是用外部中断触发一个操作

使用特权

评论回复
11
diweo| | 2014-9-9 19:21 | 只看该作者
平常心kxy 发表于 2014-9-9 18:57
我只是用外部中断触发一个操作

触发一个操作是可以的,关键是要处理好误触发和重复触发的情况。

使用特权

评论回复
12
BitFu| | 2014-9-9 21:31 | 只看该作者
按键最好用定时器扫描方式去做

使用特权

评论回复
13
QuakeGod| | 2014-9-9 22:18 | 只看该作者
:L

使用特权

评论回复
14
QuakeGod| | 2014-9-9 22:24 | 只看该作者
偶一直用定时器消抖的办法,只是那时候没有用语言描述,后来论坛里有人说出了偶的心声。
首先要明确,什么是消抖,按键的多次脉冲是由于按键的机械跳动引起的,而不是干扰。
那么,当第一个脉冲到来时,就已经可以肯定是按键被按下了,那就完全没有必要再延时几十个mS单纯为了去抖动。
所以,第一个脉冲到来时,该干什么就去干什么好了,消抖最简单了,只是简单的把这个按键的后续信号屏蔽掉几十个mS即可完美消除抖动,
如果嫌不过瘾,屏蔽掉500mS也未尝不可。防止有人乱按键。也不会引起按键反应的延迟。

使用特权

评论回复
15
QuakeGod| | 2014-9-9 22:28 | 只看该作者
就像偶们平时用的PC键盘和鼠标一样,鼠标按键也同样存在抖动的问题,如果每次按键都需要经过几十mS时间才有响应,那玩FPS游戏的人岂不是要疯掉。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

23

主题

107

帖子

3

粉丝