F28335的InitSysCtrl()與DSP2833x_SysCtrl.c文件(1)

開發DSP除了CCS之外,TI還推出了一個controlSUITE,專門針對C2000系列,主要是官網資源的集中和分類。軟件免費只需要下載安裝,由於不喜歡被別人加工註釋了代碼與工程,所以controlSUITE是個不錯的選擇。而且裏邊是TI原裝的東西,所以應該是最精華的!

打開28335的幾個例子,main函數第一個調用的就是InitSysCtrl(),而該函數就在DSP2833x_SysCtrl.c文件,

// Step 1. Initialize System Control:
// PLL, WatchDog, enable Peripheral Clocks
// This example function is found in the DSP2833x_SysCtrl.c file.
   InitSysCtrl()

所以工程裏邊必須包含DSP2833x_SysCtrl.c。打開

C:\ti\controlSUITE\device_support\f2833x\v142\DSP2833x_common\source裏邊有DSP2833x_SysCtrl.c

其實在main函數裏邊對InitSysCtrl()的作用已經說了:初始換系統控制:具體包括PLL,看門狗,使能外設時鐘。由於是官方例子,就是套路,不用問爲什麼這麼做,因爲TI就是這樣做的。

進入DSP2833x_SysCtrl.c

//---------------------------------------------------------------------------
// InitSysCtrl:
//---------------------------------------------------------------------------
// This function initializes the System Control registers to a known state.
// - Disables the watchdog
// - Set the PLLCR for proper SYSCLKOUT frequency
// - Set the pre-scaler for the high and low frequency peripheral clocks

// - Enable the clocks to the peripherals

在這裏主要乾的事情有:關掉看門狗,設置鎖相環,爲外設設置高低頻時鐘,使能時鐘。

void DisableDog(void)
{
    EALLOW;
    SysCtrlRegs.WDCR= 0x0068;
    EDIS;

}

突然發現,datasheet裏邊沒有看門狗的寄存器介紹,雖然手冊裏有講看門狗的工作原理,頭文件裏也有看門狗寄存器的定義。

先記下,但是關閉看門狗就一句話:SysCtrlRegs.WDCR= 0x0068;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章