两路捕获的问题?

2019-03-24 15:55发布

为什么我只能够捕获一路呢?第二路不能够正常的工作呢?
#include <msp430x14x.h>
#include "LCD1602.h" unsigned int upflag=0;
unsigned int downflag=0; int main( void )
{
  WDTCTL = WDTPW + WDTHOLD;
   LcdInit();
  P1DIR &=~ BIT2+BIT3;
  P1SEL = BIT2+BIT3;                   //设置P1.2为端口功能模块使用,即做捕获源
  TACTL = TASSEL_2 +TACLR +TAIE + MC1;//ACLK
  CCTL1 = CM_1 +SCS +CAP +CCIE;     //输入上升沿捕获,CCI0A为您捕获信号源
  CCTL2 = CM_1 +SCS +CAP +CCIE;       //输入上升沿捕获,CCI0A为您捕获信号源
 _EINT();
 while(1){
    WriteCommand(0x80);
    WriteData(upflag+0x30);
     WriteCommand(0xC0);
    WriteData(downflag+0x30);
 }
}
/*******************************************
      定时器A中断服务子函数
      捕获待测信号上升沿
**********************************************/
#pragma vector = TIMERA1_VECTOR
__interrupt void Timer_A(void)
{
  switch(TAIV)                    //向量查询
  {
  case 2:                        //捕获中断
    if(CCTL1 & CM0)            //捕获到上升沿
      upflag++;  TACCTL1 &=~CCIFG;  break;
  case 4:    
    if(CCTL2 & CM0)             //捕获到上升沿
      upflag++;  TACCTL2 &=~CCIFG;   break;
  default:
    break;
  }
} 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
2条回答
Main函数
2019-03-24 18:32
< 你好,请将你使用的MSP430型号告之。谢谢。

一周热门 更多>

相关问题

    相关文章