本文主要是透過遷移的思維,記錄本人初次使用NXP MCUXpresso SDK API進行BSP開發
MCUXpresso SDK PIT API 介面連結
在MCUXpresso SDK 框架下提供了對PIT進行操作的介面。週期性的定時器比較簡單,相對複雜的應用是組合定時器的使用。挑最簡單的方式學習,先“知其然”,再“知其所以然”。
1。 首先閱讀原理圖
設計中有一個輸出引腳,如下所示,可以透過PIT定時器,控制LED燈的顯示:
USER_KEY1——GPIO_AD_35——GPIO10_IO02
2。 SDK api 應用
2。1 引腳配置
LED引腳複用配置,GPIO輸出記得配置方向和初始輸出電平。 PIT不需要初始化相關的引腳。
在這裡插入圖片描述
2。2 時鐘配置
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-ALDW12t8-1616058905035)(http://139。224。41。215:4999/server/。。/Public/Uploads/2021-03-11/6049b43794afd。png)]
從上圖可以看出PIT1的時鐘源從BUS_CLK_ROOT, PIT2的時鐘源從BUS_LPSR_CLK_ROOT獲取。
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-G5AmLZTM-1616058905038)(http://139。224。41。215:4999/server/。。/Public/Uploads/2021-03-11/6049b6c2574b5。png)]
在上圖序號1中輸入想要查詢的時鐘名稱,就可以得到其時鐘源的時鐘路徑。從上圖可以分析得到,外部的24Mhz時鐘透過倍頻得到480Mhz SYS_PLL3_CLK, BUS_CLK_ROOT是從SYS_PLL3_CLK二分頻得到的,並作為PIT的時鐘源。
2。3 外設配置
在外設配置裡,新建功能組BOARD_InitPeripheral_PIT1_Ch_0
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-QjAe2EGU-1616058905042)(http://139。224。41。215:4999/server/。。/Public/Uploads/2021-03-11/6049b92bb380b。png)]
然後按上圖序號操作,就可以進行PIT的驅動初始化配置介面。
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-ltLvrU4s-1616058905045)(http://139。224。41。215:4999/server/。。/Public/Uploads/2021-03-11/6049ba7d41cef。png)]
序號1:控制PIT1
序號2:DEBUG使能中斷
序號3:使用預設配置
序號4:選擇相應的時鐘源,由於父時鐘BUS_CLK_ROOT可選。
序號5:選擇PIT通道和設定中斷產生的週期。預設使用PIT1的通道0。
上述配置已滿足了對週期性定時器的設定,當然最關鍵的事情在於編寫中斷處理函式,以滿足應用的需求。
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-h97eaYMq-1616058905047)(http://139。224。41。215:4999/server/。。/Public/Uploads/2021-03-11/6049bcc6a7821。png)]
點選上圖
;即可生成中斷函式模板,在當中新增相應的邏輯即可。如下所示:
/* PIT1_IRQn interrupt handler */void PIT1_IRQHANDLER(void) { /* Place your code here */ /* Add for ARM errata 838869, affects Cortex-M4, Cortex-M4F Store immediate overlapping exception return operation might vector to incorrect interrupt。 */ #if defined __CORTEX_M && (__CORTEX_M == 4U) __DSB(); #endif}
在中斷處理函式當中記得清楚中斷標誌位。
/* Place your code here */ /* Clear interrupt flag。*/ PIT_ClearStatusFlags(PIT1_PERIPHERAL, PIT1_CHANNEL_0, kPIT_TimerFlag);
2。4 驗證測試
將生成的程式碼替換driver_examples\pit\cm7相對應的程式碼,最終達到同樣的效果。目前程式碼沒有放出來供各位參考。
4。 總結
本次config tool工程已提交到https://gitee。com/yilianghong/mex。git 供參考。詳細修改見如下兩次提交。
+AHB-03 New feature support PIT1 channel 0 driver init
+AHB-02 New feature support GPIO_AD_35 Pin output setting