关于定时器中断

2019-03-24 13:51发布


  1. #include  "msp430g2553.h"
  2. void delay(void);                           // Software delay
  3. void main(void)
  4. {
  5.   WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT
  6.   ADC10CTL1 = CONSEQ_2;                     // Repeat single channel
  7.   ADC10CTL0 = REFOUT + REFON + MSC + ADC10ON;
  8.   __enable_interrupt();                     // Enable interrupts.
  9.   TACCR0 = 30;                              // Delay to allow Ref to settle
  10.   TACCTL0 |= CCIE;                          // Compare-mode interrupt.
  11.   TACTL = TASSEL_2 | MC_1;                  // TACLK = SMCLK, Up mode.
  12.   LPM0;                                     // Wait for delay.
  13.   TACCTL0 &= ~CCIE;                         // Disable timer Interrupt
  14.   __disable_interrupt();
  15.   ADC10AE0 |= 0x10;                         // P1.4 ADC option select
  16.   P1DIR |= 0x08;                            // Set P1.3 output direction
  17.   P1SEL |= 0x08;                            // Set P1.3 option select
  18.   for (;;)
  19.   {
  20.     ADC10CTL0 &= ~ENC;                      // ADC10 disable
  21.     ADC10CTL0 ^= REF2_5V;                   // Toggle Vref 1.5/2.5V
  22.     ADC10CTL0 |= ENC + ADC10SC;             // Sampling and conversion start
  23.     delay();
  24.   }
  25. }
  26. void delay(void)
  27. {
  28.   volatile unsigned long i;
  29.     for (i = 0x7FFFF; i > 0; i--);
  30. }
  31. #pragma vector=TIMER0_A0_VECTOR
  32. __interrupt void ta0_isr(void)
  33. {
  34.   TACTL = 0;
  35.   LPM0_EXIT;                                // Exit LPM0 on return
  36. }

复制代码各位大神看下,上面中断中TACTL = 0有什么用??为什么删掉也能运行?? 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
1条回答
chuzhitian
2019-03-24 23:52
自己先顶下!

一周热门 更多>

相关问题

    相关文章