捕获外部中断 后怎么一直在中断函数中循环?
- #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;P1OUT =0XFF;
- P2DIR =0XFF;P2OUT =0XF0;
- P3DIR =0XFF;P3OUT =0XFF;
- P4DIR =0XFF;P4OUT =0XFF;
- P5DIR =0XFF;P5OUT =0XFF;
- P6DIR =0XFF;P6OUT =0XFF;
-
-
-
- P1DIR &=~BIT5;//P1IE = BIT5;
- // P1IES=BIT5; P1IFG =0X00;
- P1DIR &=~BIT2 ;P1SEL =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;
-
-
- }
复制代码
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>