MSP430F169用定时器TimerA实现闪烁灯

MSP430F169用定时器TimerA实现闪烁灯

  • 初始化
  • IO接口
  • 时钟设置
  • 检测
  • 处理/中断
  • 传输
  • 保存数据
#include <msp430f169.h>

int main(void)
{
    WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT

    P6DIR |= 0x01;                            // P6.0 output

    TACCTL0 = CCIE;                           // CCR0 interrupt enabled
    TACCR0 = 25000;

    volatile unsigned int i;
    do
    {
        IFG1 &= ~OFIFG;                         // Clear OSCFault flag
        for (i = 0xFF; i > 0; i--)
            ;                                   // Time for flag to set
     }while((IFG1 & OFIFG));

    TACTL = TASSEL_1 + MC_2;                  // SMCLK, contmode

    _EINT();                                  // enable GIE interrupt
    LPM0;                                     // Enter LPM0
}

// Timer A0 interrupt service routine
#pragma vector=TIMERA0_VECTOR
__interrupt void TimerA_ISR(void)
{
    P6OUT ^= 0x01;                            // Toggle P6.0
    TACCR0 += 25000;                          // Add Offset to CCR0
}
posted @ 2021-03-31 17:15  叕叒双又  阅读(462)  评论(0编辑  收藏  举报