K60 FTM定时器 定时中断
生活随笔
收集整理的這篇文章主要介紹了
K60 FTM定时器 定时中断
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
K60 FTM定時器 定時中斷
?????嘗試多次無論如何設置mod寄存器都無法實現 CNTIN→MOD 向上計數,本程序采用自由計數模式,由CNTIN開始計數直到CNT==0xffff,硬件自動重置CNT=CNTIN。除此之外還應在中斷向量表中設置中斷函數,中斷號 78 - 16 + ftmn ,中斷函數中應清除相應的STATUS寄存器和TOF標志位來清除中斷標志。 頻率計算,只能慢慢試了。
/************************************************************************* * 桂林電子科技大學嵌入式基地 * * 函數名稱:FTM_Timer_init * 功能說明:定時溢出中斷始化函數 * 參數說明:ftmn freq-定時器初值 ps-時鐘分頻 1 2 6 8.... * 函數返回:無 * 修改時間:2018-4-26 * 備 注: *************************************************************************/ void FTM_Timer_init(FTMn ftmn, u16 freq , u8 ps) {/******************* 開啟時鐘 *******************/SIM_SCGC6 |= SIM_SCGC6_FTM0_MASK; //使能FTM0時鐘/******************** 配置時鐘和分頻 ********************/FTM_MODE_REG(FTMx[ftmn]) |= FTM_MODE_WPDIS_MASK ; //寫保護禁止FTM_QDCTRL_REG(FTMx[ftmn]) = 0 ;FTM_SC_REG(FTMx[ftmn]) = FTM_SC_PS(ps) | FTM_SC_CLKS(1) | FTM_SC_TOIE_MASK ;FTM_CNTIN_REG(FTMx[ftmn]) = freq ; // Counter Initial Value 計數器初始化值FTM_MOD_REG(FTMx[ftmn]) = 1 ; //Modulo value模數, EPWM的周期為 :MOD - CNTIN + 0x0001FTM_CNT_REG(FTMx[ftmn]) = freq ; //計數器。只有低16位可用FTM_SC_REG(FTMx[ftmn]) &= 0x7F ; //清中斷標志位寫TOF為0FTM_MODE_REG(FTMx[ftmn]) |= FTM_MODE_FTMEN_MASK ; //FTM使能enable_irq(78 - 16 + ftmn); //FTMn開中斷 }總結
以上是生活随笔為你收集整理的K60 FTM定时器 定时中断的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: IDEA清除Local History
- 下一篇: 转载(吃货告诉你,PAAS、IAAS和S