1. 程式人生 > >[MSP430DriverLib-3]使用Timer_A讓LED閃爍

[MSP430DriverLib-3]使用Timer_A讓LED閃爍

cloc void b- put output period div 清除 開始

使用Timer_A。代碼如下:

#include "./DriverLib/driverlib.h"

int main()
{
    WDT_A_hold( WDT_A_BASE );                                   // 關閉看門狗

    GPIO_setAsOutputPin( GPIO_PORT_P1, GPIO_PIN0 );             // 配置P1.0為輸出模式
    GPIO_setOutputLowOnPin( GPIO_PORT_P1 , GPIO_PIN0 );         // 設置P1.0輸出低電平

    Timer_A_initUpModeParam uptimer;                            // Timer_A初始化變量
    uptimer.clockSource = TIMER_A_CLOCKSOURCE_SMCLK;            // 配置時鐘源為SMCLK
    uptimer.clockSourceDivider = TIMER_A_CLOCKSOURCE_DIVIDER_1; // 配置1分頻
    uptimer.timerPeriod = 50000;                                // 配置CCR0
    uptimer.timerInterruptEnable_TAIE = TIMER_A_TAIE_INTERRUPT_DISABLE;
                                                                // 關閉Timer_A中斷
    uptimer.captureCompareInterruptEnable_CCR0_CCIE = TIMER_A_CCIE_CCR0_INTERRUPT_ENABLE;
                                                                // 使能CCR0捕獲比較中斷
    uptimer.timerClear = TIMER_A_DO_CLEAR;                      // 使能清除
    uptimer.startTimer = true;                                  // 需要立即開始Timer_A

    Timer_A_initUpMode( TIMER_A0_BASE , &uptimer );             // 初始化Timer_A

    __bis_SR_register( LPM0_bits + GIE );                       // 進入LPM0,使能中斷
    return 0;
}

#pragma vector = TIMER0_A0_VECTOR
__interrupt void TIMER0_A0_ISR(void)
{
    GPIO_toggleOutputOnPin( GPIO_PORT_P1, GPIO_PIN0 );          // 反轉P1.0狀態
}

[MSP430DriverLib-3]使用Timer_A讓LED閃爍