[通用PIC核OTP系列] HC18P110L利用电平中断写的一个按键输入

[复制链接]
3215|9
 楼主| 从此不早朝 发表于 2023-2-24 16:10 | 显示全部楼层 |阅读模式
本帖最后由 芯圣电子官方QQ 于 2023-7-20 10:28 编辑
  1. /****************************************************************************
  2. * 函数名   : __interrupt()
  3. * 功  能   : 中断函数
  4. * 输 入    :
  5. * 全局变量 :
  6. * 输    出 :
  7. *****************************************************************************/
  8. void Intr(void) __interrupt 0
  9. {
  10.         /*Pin 状态变化中断函数*/
  11.         if(RBIF)
  12.         {
  13.                 if((PORTB5 == 1)&&(button_release == 1))
  14.                 {
  15.                         if(button_mode<3)
  16.                         {
  17.                                 button_mode++;
  18.                         }
  19.                         else
  20.                         {
  21.                                 button_mode = 0;
  22.                         }
  23.                         button_release = 0;        
  24.                 }
  25.                 else if(PORTB5 == 0)
  26.                 {
  27.                         button_release = 1;
  28.                 }
  29.                 RBIF=0;
  30.         }

  31. }




tpgf 发表于 2023-3-7 16:51 | 显示全部楼层
如果是电平中断而不是跳变沿中断的话 难道不应该处理一下吗  
晓伍 发表于 2023-3-8 08:05 | 显示全部楼层
楼主的处理很好 用标志位避免了误操作
八层楼 发表于 2023-3-8 08:21 | 显示全部楼层
细看程序感觉有矛盾  楼主进入中断函数的条件是什么呀
观海 发表于 2023-3-8 09:12 | 显示全部楼层
我仔细分析了一下楼主的程序 看着应该是跳变沿产生中断啊
guanjiaer 发表于 2023-3-8 09:27 | 显示全部楼层
这么弄的话 岂不是会一直一直往中断里边跳?
keaibukelian 发表于 2023-3-8 09:51 | 显示全部楼层
楼主这是在中断函数里边做的防抖操作?
有何不可0365 发表于 2024-7-31 14:57 | 显示全部楼层
在这个函数中,利用了外部中断来检测按键的状态变化,并根据按键的状态更新一个模式变量。
yangjiaxu 发表于 2024-7-31 16:12 | 显示全部楼层
还说,啥是电平中断啊?不都是IO的外部触发吗?适合与按键方面的应用
亚瑟 发表于 2024-7-31 21:45 | 显示全部楼层
这是在中断里延时了吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

22

主题

185

帖子

0

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