TIMER中段時間如何計算

2019-03-24 09:36发布

請問各位,關於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的計數步數就可知道進中斷時間,但似乎沒有控制步數的部分,僅能依靠分頻來控制??)

此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
1条回答
nt52241930
1楼-- · 2019-03-24 16:43
原來TI的TIMER計算方式
是主頻到TimerLoadSet的時間,上面除以1000 所以會為1ms
但假設今天主頻設置100M,上面除以1000後,TimerLoadGet卻不會得到100000HZ
主頻設置125M,上面除以1000後,TimerLoadGet就可得125000HZ

所以這部分是否有什麼限制??

一周热门 更多>

相关问题

    相关文章