[PIC®/AVR®/dsPIC®产品] B口中断

[复制链接]
 楼主| zhu070 发表于 2013-8-8 09:48 | 显示全部楼层 |阅读模式
我现在把B0口设置成电平中断。外部接了一个按键。中断程序:
void interrupt ISR()

      if(RBIF)   // B口电平中断
        {
                PortB = PORTB;  //读B口寄存器
                func(); //自己的函数
                RBIF = 0;
        }

请问这样写可以吗?
yklstudent 发表于 2013-8-8 10:49 | 显示全部楼层
试试就知道了 感觉是没问题的
 楼主| zhu070 发表于 2013-8-8 11:42 | 显示全部楼层
硬件正在做啊,不知道按键抖动会不会有影响
NE5532 发表于 2013-8-8 13:06 | 显示全部楼层
没有去抖动的环节,抖动可能会有影响。
草民 发表于 2013-8-8 14:39 | 显示全部楼层
电平中断的话可以做去抖!

void interrupt ISR()

      static bit judge;
      if(RBIF&&judge)   // B口电平中断
      {
           judge = !judge;
           RBIF = 0;
           return;
      }
      else
       {           
            judge = !judge;
            RBIF = 0;
            PortB = PORTB;  //读B口寄存器
            func(); //自己的函数
        }
 楼主| zhu070 发表于 2013-8-12 08:45 | 显示全部楼层
草民 发表于 2013-8-8 14:39
电平中断的话可以做去抖!

void interrupt ISR()

好的,谢谢啊
dogglove 发表于 2013-8-12 13:37 | 显示全部楼层
是弹起还是按下起作用
 楼主| zhu070 发表于 2013-8-23 08:55 | 显示全部楼层
dogglove 发表于 2013-8-12 13:37
是弹起还是按下起作用

按下起作用
xiaomanong 发表于 2013-8-23 21:54 | 显示全部楼层
学习了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

15

帖子

0

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