K60學(xué)習(xí)之PIT周期性定時模塊

PIT(周期性定時器模塊)
原理部分:
相當(dāng)于Systick的增強版
輸入時鐘是bus clock
能夠產(chǎn)生中斷或是觸發(fā)triggger信號
一些重要的寄存器
PIT_MCR Module Control Register
MDIS 為0時使能PIT ;為1時禁止PIT
FRZ 在debug模式下,為0時使能PIT ;為1時禁止PIT
PIT_LDVALn Timer Load Value Register
存儲一個計數(shù)值,減法計數(shù),到0時產(chǎn)生一個中斷或是觸發(fā)一個事件
在計數(shù)過程中,如果寫入新的值,不會打斷計數(shù),而只是會在本次計數(shù)結(jié)束之后再寫入
要想廢除本次計數(shù),必須先關(guān)閉計數(shù)器,再打開
PIT_CVALn Current Timer Value Register
用于存儲當(dāng)前正在計數(shù)的值
PIT_TCTCLn Timer Control Register
TIE 0表示不產(chǎn)生中斷
TEN 0表示計數(shù)器禁止,1表示計數(shù)器開啟
PIT_TFGn Timer Flag Register
TIF 0表示正在計數(shù);1表示計數(shù)結(jié)束 ;寫1的時候清零
應(yīng)用部分:

//初始化PIT
    PIT_InitTypeDef PIT_InitStruct1;  //申請一個PIT模塊
    PIT_InitStruct1.chl = HW_PIT_CH0; /*使用通道0進行定時 */
    PIT_InitStruct1.timeInUs = 1000*1000; /* 定時時間設(shè)置 */
    PIT_Init(&PIT_InitStruct1); //初始化
    PIT_CallbackInstall(HW_PIT_CH0, PIT_ISR); //注冊中斷函數(shù)
    PIT_ITDMAConfig(HW_PIT_CH0, kPIT_IT_TOF, true);
    //開啟 PIT中斷

對函數(shù)PIT_Init()的解釋:
1.在外部的結(jié)構(gòu)體PIT_InitStruct1已經(jīng)定義了通道號和定時的時間。
2.在初始化內(nèi)部,需要完成通道的設(shè)置,定時時間的設(shè)置,為了后續(xù)調(diào)用的方便,還加入了一部分代碼將計數(shù)值換算為us和ms;
3.將定時時間換算成計數(shù)值放到PIT_LDVALn 寄存器中;
4.修改PIT_TCTCLn 的TEN 位,設(shè)置允許計數(shù);
5.最后設(shè)置PIT_MCR 打開PIT模塊。
后面的注冊回調(diào)函數(shù)和打開中斷與之前的類似。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,506評論 19 139
  • 原文鏈接http://www.cnblogs.com/kenshincui/p/4186022.html 音頻在i...
    Hyman0819閱讀 22,137評論 4 74
  • “你看看那里,兩具尸體!” 身邊有人壓低了聲音說著什么,見我望了過來立刻露出厭惡的表情小步跑開了。 我低頭看著木頭...
    花笏閱讀 454評論 0 0
  • 1、小油菜放入開水煮2分鐘,撈出后根部朝下立起來放入盆中,再把煮菜的開水倒進去。為了讓根部熟透而不傷害葉部。15分...
    小乞_閱讀 479評論 0 0

友情鏈接更多精彩內(nèi)容