請問各位,關於TIMER部分的計算
SysCtlClockGet()為15384000
TimerLoadSet(TIMER0_BASE, TIMER_B,SysCtlClockGet()/1000);
以下為主要設置
void timer0_set(void)
{
//TIMER0時鐘ON
SysCtlPeripheralEnable(SYSCTL_PERIPH_TIMER0);
//TIMER0配置,
TimerConfigure(TIMER0_BASE, TIMER_CFG_SPLIT_PAIR | TIMER_CFG_B_PERIODIC);
//TIMER0,TIMERB負載時間設置,主頻/1000
TimerLoadSet(TIMER0_BASE, TIMER_B,SysCtlClockGet()/1000);
//獲取timer0b load
sys_t0b = TimerLoadGet(TIMER0_BASE, TIMER_B);
//系統中斷ON
// IntMasterEnable();
//TIMER0中斷ON
TimerIntEnable(TIMER0_BASE, TIMER_TIMB_TIMEOUT);
//系統TIMER0B中斷開啟
IntEnable(INT_TIMER0B);
//TIMER0B開起計數
TimerEnable(TIMER0_BASE, TIMER_B);
}
目前使用此配置進入中斷後,使用1隻輸出來看進出中斷時間
為1ms 此部分是如何計算出來的呢???
(一般來說,timer頻率喚回時間乘上timer的計數步數就可知道進中斷時間,但似乎沒有控制步數的部分,僅能依靠分頻來控制??) |