dsp中断按键程序

[复制链接]
2445|11
 楼主| 595332542 发表于 2013-8-21 15:35 | 显示全部楼层 |阅读模式
各位老师,
我现在采用外部中断处理按键问题,下面为简单中断程序。
  1. interrupt void ISRExint3(void)
  2. {
  3.            num1++;
  4.     PieCtrlRegs.PIEACK.all = PIEACK_GROUP12;
  5.     sign=3;

  6. }
为什么外部按键按下,num1每次并不是加一,而是没有规律的增长?

不知各位有没有按键中断的程序参考一下。
 楼主| 595332542 发表于 2013-8-21 16:51 | 显示全部楼层
麻烦指导一下哈。
zhangmangui 发表于 2013-8-21 19:02 | 显示全部楼层
按键没有去抖动   只能说连续多次中断  
你可以进入中断之后关闭中断  
然后看看是否只加了一次  如果不是一次  
说明别的地方也对num1有修改
biechedan 发表于 2013-8-21 23:12 | 显示全部楼层
你的触发方式不对吧?
biechedan 发表于 2013-8-21 23:13 | 显示全部楼层
使用边沿触发,而不是电平触发。
 楼主| 595332542 发表于 2013-8-22 10:24 | 显示全部楼层
zhangmangui 发表于 2013-8-21 19:02
按键没有去抖动   只能说连续多次中断  
你可以进入中断之后关闭中断  
然后看看是否只加了一次  如果不是 ...

是的,确实是多次中断,进入中断后把相应中断关闭,num数值只加了一位,但在进入中断后关闭中断只能进入一次中断了。
确实是多次中断的这个问题应该如何让解决呢?
以前没有用过中断,老师您那里有没有使用中断的例子,麻烦啦^_^。
zhangmangui 发表于 2013-8-22 11:15 | 显示全部楼层
595332542 发表于 2013-8-22 10:24
是的,确实是多次中断,进入中断后把相应中断关闭,num数值只加了一位,但在进入中断后关闭中断只能进入 ...

如果按键接到了中断上   那就你程序进入之后先关闭中断   num加加   然后打开中断  中断服务函数结束  
这样如果还是多次   那就软件上没法处理了  应该在硬件电路上加入整形
如果是在IO口上的话  你可以采用查询的方法   然后在去抖动   就可以避免多次的情况
wangdezhi 发表于 2013-8-22 23:48 | 显示全部楼层
楼主可以使用while里面循环的。
wangdezhi 发表于 2013-8-22 23:48 | 显示全部楼层
等待引脚变为高电平。
拿起书本 发表于 2013-8-24 21:12 | 显示全部楼层
采用外部中断,也必须配合定时器来做。否则不好区分是抖动造成的多次按键
zhangmangui 发表于 2013-8-25 00:26 | 显示全部楼层
拿起书本 发表于 2013-8-24 21:12
采用外部中断,也必须配合定时器来做。否则不好区分是抖动造成的多次按键 ...

这个不太明白  还望你详解一下  怎么配合
craaazyfor 发表于 2013-9-24 15:11 | 显示全部楼层
定时按键消抖、检测,我们的产品就这么做的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

30

主题

77

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部