開發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;