g2553定时器的使用问题

2019-03-24 13:46发布

#include "msp430g2553.h"

int main( void )
{
  // Stop watchdog timer to prevent time out reset
    WDTCTL = WDTPW + WDTHOLD;
   
    P1DIR |= BIT0;
    P1OUT &= ~BIT0;
   
    CCR0=50000;
    TACTL=TAIE+TASSEL_2+MC_1;
        
    while(1);
    //return 0;
}
#pragma vector=TIMER0_A0_VECTOR
__interrupt void timer_A(void)
{
    P1OUT |= BIT0;
}

P1.0有个灯,最开始我是让他闪烁的,后来发现没进入中断,所以中断函数里面就写了个让他亮的程序,但是一直没亮,所以没进入中断,我不知道问题出在哪儿,请各位坛友帮我看下 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
9条回答
wstt
2019-03-25 20:46

  1. #include  

  2. void main(void)
  3. {
  4.   WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT
  5.   P1DIR |= 0x01;                            // P1.0 output
  6.   CCTL1 = CCIE;                             // CCR1 interrupt enabled
  7.   CCR1 = 50000;
  8.   TACTL = TASSEL_2 + MC_2;                  // SMCLK, Contmode

  9.   _BIS_SR(LPM0_bits + GIE);                 // Enter LPM0 w/ interrupt
  10. }

  11. // Timer_A3 Interrupt Vector (TA0IV) handler
  12. #pragma vector=TIMER0_A1_VECTOR
  13. __interrupt void Timer_A(void)
  14. {
  15.   switch( TA0IV )
  16.   {
  17.   case  2:                                  // CCR1
  18.     {
  19.     P1OUT ^= 0x01;                          // Toggle P1.0
  20.     CCR1 += 50000;                          // Add Offset to CCR1
  21.     }
  22.            break;
  23.   case  4: break;                           // CCR2 not used
  24.   case 10: break;                           // overflow not used
  25. }
  26. }
复制代码

一周热门 更多>

相关问题

    相关文章