NO.15 MSP432定時器使用實例——流水燈


  上一篇文章我們講了定時器Timer的基本概念和如何調用定時器。這次我們來嘗試在MSP432中使用定時器完成流水燈這個小實驗。

  流水燈是我們從真正意義上進行對單片機進行時間控制。

  這個實驗主要是控制我們開發板上的LED進行1s亮,1s滅,循環進行。

  首先,我們打開CCS中ResourceExplorer的TiDrivers下的案例——timerled。

  我們將其導入到我們的工作區中,我們再打開timerled.syscfg這個文件,查看本工程的相關配置。

  

  我們要增加其他Timer也非常簡單,只要點擊ADD這個按鈕就可以配置相關內容。

  我們其次打開timerled.c這個主文件,里面存放着我們的核心程序。

  我們要使用定時器,首先要引入這個頭文件

  

#include <ti/drivers/Timer.h>

  像往常一樣,我們要定義一個定時器的句柄Handle和一個參數Params。

Timer_Handle timer0;
Timer_Params params;

  同時,我們要確定我們定時器到了時間之后該做些什么,就是所謂的回調函數。我們先建立這個函數。

/* Callback used for toggling the LED. */
void timerCallback(Timer_Handle myHandle);

/*
 * This callback is called every 1,000,000 microseconds, or 1 second. Because
 * the LED is toggled each time this function is called, the LED will blink at
 * a rate of once every 2 seconds.
 * */
void timerCallback(Timer_Handle myHandle)
{
    GPIO_toggle(CONFIG_GPIO_LED_0);
}

 

  然后我們在主程序內要調用初始化定時器這個函數。

/* Call driver init functions */
GPIO_init();
Timer_init();

  隨后我們就可以具體設定定時器的參數了

Timer_Params_init(&params);
params.period = 1000000;
params.periodUnits = Timer_PERIOD_US;
params.timerMode = Timer_CONTINUOUS_CALLBACK;
params.timerCallback = timerCallback;

  在這里,我們的設置是定時器的時間周期是1000000us=1000ms=1s,我們定時是連續工作的,是CONTINUOUS進行計時的,同時,我們到時間后會調用timerCallback()這個回調函數。

  最后一步就是開啟定時器了,我們最后一行代碼。

 

timer0 = Timer_open(CONFIG_TIMER_0, &params);

 

  好的,我們來看下我們程序的運行情況。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM