XMC™使用Dave4快速開發(二)定時器輸入捕獲

上篇博文中我們在Dave4中使用PWM APP配置了一隊互補輸出的PWM,在這篇博文中,我將使用CAPTURE APP來配置實現輸入捕獲功能。輸入捕獲功能可以用來測量脈衝寬度或者測量頻率。XMC單片機的定時器模塊,包括CCU4  CCU8,每個模塊都有4個定時器片,其中的每個定時器片都可以同時用作輸入捕獲功能。 輸入捕獲,簡單的說就是通過檢測 邊沿信號,在邊沿信號發生跳變(比如上升沿/下降沿)的時候,將當前定時器的值存放到對應的通道的捕獲/比較寄存器裡面,完成一次捕獲。同時還可以配置捕獲時是否觸發中斷等。

假如我們需要捕獲輸入信號的周期和占空比,一般的單片機捕獲脈寬的方式是先設置輸入捕獲為上升沿檢測,記錄發生上升沿的時候定時器的值。然後配置捕獲信號為下降沿捕獲,當下降沿到來時,發生捕獲再並記錄此時的定時器值。這樣,前後兩次計數值之差,就是高電平的脈寬,同時通過計數頻率計算出高電平脈寬的準確時間。那在XMC的單片機中,我們可以直接使用CAPTURE APP和官方提供的庫來捕獲信號周期長度和占空比。 

這裡我們選擇使用CAPTURE APP來將CCU8_0的其中一個時間片配置成輸入捕獲模式來捕獲信號周期和占空比。

1. 添加CAPTURE APP,我們依舊是直接搜索CAPTURE,添加後自動命名為Capture_0,雙擊打開可以看到如下畫面。
在General Setting中我們可以選擇CCU模塊,在Timer Resolution Configuration可以選擇定時器的頻率,這裡我們就Direct默認使用最大頻率48MHz來計算。
在Desired Timer Resolution中選擇解析度。
在Capture Setting選擇我們想要捕獲的邊沿信號跳動方向,周期長度和占空比只有在捕獲邊緣配置上升沿到上升沿或下降沿到下降沿時才可用。這裡我們選擇上升沿到上升沿。





2. 在Advanced Settings中我們可以選擇輸入源,我們這裡選擇GPIO
在Low pass filter configuraton中可以配置數字低通濾波器, 選擇低通濾波器連續計數時鐘周期的數量,輸入信號需要在這些時鐘周期內保持穩定舉個簡單的例子:假設 選擇3個時鐘周期的低通濾波器,且為上升沿觸發,那麼在捕獲到上升沿的時候,再以設定的頻率,連續採樣到 3 電平,如果都是高電平,則說明是一個有效的觸發,如果開啟了中斷就會觸發輸入捕獲中斷。這樣可以濾除那些高電平脈寬低於3個採樣周期的脈衝信號,從而達到濾波的效果。這裡我們不需要濾波處理,選擇Disabled。



3. 在Interrupt Settings中我們可以選擇是否觸發中斷和中斷優先級配置,這裡我們更名中斷服務函數名稱為CAPTUREIRQHandler



4. 在Pin Settings中我們可以選擇輸入引腳的方向類型



5. 最後我們右鍵點擊CAPTURE_0 APP選擇信號輸入的IO引腳,然後點擊Generate code 生成代碼即可。
生成代碼後,在Main.C中,可以直接添加我們命名的中斷服務函數 void CaptureIRQHandler( void ){},發生捕獲後會跳轉到該中斷。
想要得到周期和占空比的話,我們可以直接分別使用官方提供的函數CAPTURE_GetPeriod();CAPTURE_GetDutyCycle();非常好用。

看更多內容
上一篇:Infineon 圖形化配置軟體Dave4使用-針對XMC系列(一)
下一篇:XMC™使用Dave4快速開發(三)ADC實驗

★博文內容均由個人提供,與平台無關,如有違法或侵權,請與網站管理員聯繫。

★文明上網,請理性發言。內容一周內被舉報5次,發文人進小黑屋喔~

評論