用CCR1写的延时函数,求解答

2019-03-24 13:45发布

我想写一个延时函数,调用它的时候就延时一定的时间。看下我写的,我发现不管CCR1的值是多少,红灯闪烁的速度都一样啊,郁闷,不知道哪里出问题了。
设备用的是lunchpad,我知道实现闪烁LED不必这么写,我只是为了看看延时函数的效果。
另外,应该怎么写延时函数更好呢?

#include  <msp430g2553.h>

void delay()
{
        CCR1=1200;
        CCTL1 = CCIE;
          TACTL = TASSEL_1 + MC_2;                  // ACLK, Contmode
        _BIS_SR(LPM0_bits + GIE);
}

void main(void)
{
        WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT
    BCSCTL3 |= LFXT1S_2;                      // LFXT1 = VLO
    IFG1 &= ~OFIFG;                           // Clear OSCFault flag
    P1DIR |= 0x01;                            // P1.0 output
    while(1)
                {
                  P1OUT ^=BIT0 ;
                  delay();
                }
        }

// Timer_A3 Interrupt Vector (TA0IV) handler
#pragma vector=TIMER0_A1_VECTOR
__interrupt void Timer_A(void)
{
  switch( TA0IV )
  {
  case  2:                                  // CCR1
    {
      LPM0_EXIT;
      CCTL1 &=~CCIE;
    }
           break;
  case  4: break;                           // CCR2 not used
  case 10: break;                           // overflow not used
}
} 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
挨紧
1楼-- · 2019-03-24 23:27
< 我知道了
maylove
2楼-- · 2019-03-25 03:03
< :TI_MSP430_内容页_SA7 --> 期待楼主将问题出在哪里,如何解决的,跟大家一块分享!

一周热门 更多>

相关问题

    相关文章