在线情况
楼主
  • 头像
  • 级别
    • 积分8
    • 经验1085
    • 文章55
    • 注册2008-04-14
    分享一下小弟的IO中断服务程序
    //-------------------------------------------------------------------------------
    //端口1中断函数
    //多中断中断源:P1IFG.0~P1IFG7
    //进入中断后应首先判断中断源,退出中断前应清除中断标志,否则将再次引发中断
    //-------------------------------------------------------------------------------
    #pragma vector=PORT1_VECTOR
    __interrupt void Port1()
    {
          uint8   IFG_temp = P1IFG;
          uint8   bit_num;
          for(uint8 i=0;i<8;i++)
          {
              if((IFG_temp & 0x01)==0x01)
              {
                  if(i==0)  bit_num = 0x01;
                  else
                  {
                      bit_num = 2<<(i-1);
                  }
                  if(P1IES & bit_num)         //进保护中断
                  {
                      //处理Pi口上升沿中断
                   }
                  else
                  {
                     //处理Pi口下降沿中断
                   }
                   P1IFG  &= ~bit_num;
               }
              IFG_temp >>=1;
           }
           LPM3_EXIT; //退出中断后退出低功耗模式。若退出中断后要保留低功耗模式,将本句屏蔽
    }
    微控网感谢您的参与
    在线情况
    2
    • 头像
    • 级别
      • 积分30
      • 经验805
      • 文章147
      • 注册2008-07-09
      我一般在端口中断程序末尾清除所有中断标志P1IFG=0x00;以防万一~~~
      经有关部门鉴定为帅哥
      在线情况
      3
      • 头像
      • 级别
        • 积分6
        • 经验376
        • 文章15
        • 注册2008-07-29
        可以应用到P1口的所用中断处理 ,根据变量值确定中断号,
        借鉴了   写的不错,感觉把一个一个功能写成一个一个函数的方法还是挺好的
        方便了总程序的编写
        微控网感谢您的参与
        在线情况
        4
        • 头像
        • 级别
          • 财富1
          • 积分23
          • 经验3096
          • 文章276
          • 注册2008-05-23
          [EM15]
          学习学习!~
          在线情况
          5
          • 头像
          • 级别
            • 积分8
            • 经验1085
            • 文章55
            • 注册2008-04-14
            我想问下2楼的兄弟 你的"以防万一" 指的是什么情况呀
            微控网感谢您的参与
            在线情况
            6
            • 头像
            • 级别
              • 积分30
              • 经验805
              • 文章147
              • 注册2008-07-09
              以防自己忘记清除中断标志了~~~~~
              经有关部门鉴定为帅哥
              在线情况
              7
              • 头像
              • 级别
                • 积分1
                • 经验209
                • 文章14
                • 注册2008-04-20
                借鉴了
                微控网感谢您的参与
                Powered by LeadBBS 9.2 .
                Page created in 0.1875 seconds with 9 queries.