问题如标题,外部中断是接收到红外信号
| #include <msp430x14x.h> #define uchar unsigned char #define uint unsigned int uint temp,temp1; long start, end, time ; void delay(void) { uint f=500; while(f--); } void delayms(int ms) { while(ms--) { int i=0; for(i=0;i<=1600;i++); } } void init(void) { uint i; // P1DIR =0XFF 1OUT =0XFF;P2DIR =0XFF 2OUT =0XF0;P3DIR =0XFF 3OUT =0XFF;P4DIR =0XFF 4OUT =0XFF;P5DIR =0XFF 5OUT =0XFF;P6DIR =0XFF 6OUT =0XFF;P1DIR &=~BIT5;//P1IE = BIT5; // P1IES=BIT5; P1IFG =0X00; P1DIR &=~BIT2 1SEL =BIT2;_EINT(); BCSCTL1 &=~XT2OFF; BCSCTL2 |= SELM1+DIVM_3; TACTL=TASSEL_2+TACLR+MC_1 ; //timera_clk=Mclk=1MHz、连续计数模式、1分频 CCTL1=CM_3+SCS+CCIS_0+CAP+CCIE; do { IFG1 &=~OFIFG; for(i=0xFF;i>0;i--); } while ((IFG1 & OFIFG)!=0); temp = temp1 = 0 ; start = end = time =0 ; } void main(void) { WDTCTL =WDTPW+WDTHOLD ; init(); uint i=0,j=0; while(1) { delayms(5); CCTL1 |=CCIE; } } /********************Timer_A中断服务程序*************************/ #pragma vector = TIMERA1_VECTOR __interrupt void Timer_A (void) { CCTL1 &=~CCIE;// TACTL |= MC_0; P2OUT ^=0xff; } |
1OUT =0XFF;