请问 如何判断任何一个IO口上升下降边沿?

[复制链接]
1336|7
 楼主| 林维东 发表于 2016-3-27 09:21 | 显示全部楼层 |阅读模式
请问 如何判断任何一个IO口
上升下降边沿?
wangjiahao88 发表于 2016-3-27 09:23 | 显示全部楼层
状态机吧!

要实现的IO口多吗?
姜长乐 发表于 2016-3-27 09:25 | 显示全部楼层
TACCTL1 = CM_3 + CCIS_0 + SCS + CAP + CCIE;
#pragma vector = TIMERA1_VECTOR
    __interrupt void TIMER_A (void)
    {
     switch(TAIV)
      {
      case 2:
              if(TACCTL1&SCCI)                 //就是这里判断这样写对么                     
                              {  //上升沿处理函输}
              else            
                             {//下降沿处理函数}
                      break;
      case 4 : break;
      case 10: break;     
      }
    }
姜长乐 发表于 2016-3-27 09:27 | 显示全部楼层
void main(void)
{
    P1MDIN = 0XFF;                                                        //端口1输入方式配置寄存器,全部不配置为模拟输入
    P1MDOUT = 0X00;                                                        //端口1输出方式配置寄存器,全部配置为漏极开路输出
    P1 = 0XFF;
    XBR0 = 0X00;                                                        //端口I/O 交叉开关控制0,外设不连接引脚
    XBR1 = 0X40;                                                        //端口I/O 交叉开关控制1,交叉开关使能,弱上拉使能
while(1)

    {
    if (P1^3 = 0)                                                //检查P1.3下降沿
        {
        //这里放入你要执行的程序

        while(!P1^3)                                        //等待上升沿
        }
    }
}
姜长乐 发表于 2016-3-27 09:32 | 显示全部楼层
是不是需要同时检测 或者不允许while 等待的那种检测?
姜长乐 发表于 2016-3-27 11:09 | 显示全部楼层
似乎不好实现啊!

最好是选择一款ARM 有IO口可以配置中断的MCU。
gaoxiansheng 发表于 2016-3-29 09:56 | 显示全部楼层
看芯片了,选择带有IO中断的芯片,就可以检测到。
wangjiahao88 发表于 2016-4-4 21:07 | 显示全部楼层
嗯@

谢谢了!

另外 在进入中断以后 判断一下IO口的状态  就知道是上升还是下降了!

终于搞定了!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

45

帖子

1

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