在項目調試過程中,需要監控變量通常采用ICS(In Circuit Scope)和DA兩種方法。使用ICS會占用MCU的資源(UART)以及增加硬件的成本(ICS硬件板);如果MCU的DA引腳已被其他功能占用,當這兩種方法都不是很好的選擇的情況下,我們也可以考慮使用GPT來監控變量。這里給大家介紹一下如何使用GPT監控變量。
一、原理說明
用GPT來模擬DA的功能,例如需要監控一個變量t1,我們把t1通過線性計算變換為0~1023之間的值,假設MCU電源為3.3V,當t1為0時輸出0V,當t1為1023時輸出3.3V,其他值成線性關系。
二、硬件電路
將需要監控變量的GPT輸出引腳(GPT)連接如下RC電路,T1為測試點,如下圖所示。
硬件電路
三、軟件配置
以下介紹如何在項目中配置GPT來實現該功能。這里以創建新工程為例,也可以把以下GPT的配置直接加入到已有工程中(從步驟7開始)。
1運行e2 studio,選擇“文件”→“新建”→“C/C++ Project”,如圖1。
圖1 創建新項目步驟一
e2 studio(瑞薩IDE)
2選擇“Renesas RX”和“Renesas CC-RX C/C++ Executable Project”,點擊“下一步”,如圖2。
圖2 創建新項目步驟二
3設置項目目錄,輸入項目名稱,點擊“下一步”,如圖3。
圖3 創建新項目步驟三
4選擇Toolchain版本,選擇MCU型號、“Endian”和仿真器,點擊“下一步”,如圖4。
圖4 創建新項目步驟四
5勾選“Use Smart Configurator”,點擊“完成”,如圖5。
圖5 創建新項目步驟五
6創建完成的程序結構如圖6。
圖6 程序結構圖
7點擊“Components” → “Add component”,選擇“General PWM Timer”,Work mode選擇“Saw-wave PWM mode 1”,Resource選擇“GPT0”(這里以GPT0為例,也可以選擇其他GPT),如圖7。
圖7 添加GPT0
8配置GPT0,如圖8~11。
“Timer operation period” 設為1024 count,如圖8;
“Count direction” 設為 “Up-counting”,如圖8;
“GTCCRA operation” 的Compare match后的值可以設為0~1023的任意值,這里設為“512”,如圖9;
“GTCIV0”的優先級可以根據項目工程自定,這里設為“15”,如圖11。
圖8 配置GPT0(1)
圖9 配置GPT0(2)
圖10 配置GPT0(3)
圖11 配置GPT0(4)
9因為上面使用了“GTCIV0”中斷,點擊“Interrupts”,把252改成“GTCIV0”后其狀態會變更為“Used”,如圖12。
圖12 設置中斷
10點擊“Generate code”后將會生成GPT0的代碼,如圖13。
圖13 生成GPT0的代碼
11在main( )中添加如下代碼啟動GPT0,如圖14。
圖14 添加GPT0啟動代碼
12在GTCIV0中斷中將監控變量的值設置到比較匹配寄存器GTCCRA中,如圖15。
圖15 設置GTCCRA
13以下為假設監控變量的值(即GTCCRA的值)分別為256、512、768時輸出的波形,如圖16、17、18。
舉例說明如何算出監控變量的值:從圖16中我們可以看出輸出電壓為0.83V,從0.83V*1023/3.3V = 257.3反推出監控變量的值為257.3(因為示波器測量電壓有誤差,所以反推出的值有誤差)。
圖16 GTCCRA = 256
圖17 GTCCRA = 512
圖18 GTCCRA = 768
從圖16、17、18的波形可以看出來,輸出電壓會根據GTCCRA值的變化而變化,從而我們可以反推出監控變量的實時值。
通過以上硬件電路和軟件配置,我們就實現了用GPT的比較匹配功能來達到監控變量的目的。
審核編輯:湯梓紅
-
mcu
+關注
關注
146文章
17358瀏覽量
352806 -
瑞薩
+關注
關注
35文章
22312瀏覽量
86826 -
引腳
+關注
關注
16文章
1222瀏覽量
50955 -
硬件電路
+關注
關注
39文章
244瀏覽量
29330 -
GPT
+關注
關注
0文章
360瀏覽量
15536
原文標題:如何使用GPT監控變量
文章出處:【微信號:瑞薩MCU小百科,微信公眾號:瑞薩MCU小百科】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
圖紙模板中的文本變量
![圖紙模板中的文本<b class='flag-5'>變量</b>](https://file1.elecfans.com//web1/M00/F4/D5/wKgZoWcy18-AG-szAAJXO8IiHgQ099.png)
Linux環境變量配置方法
通過工業智能網關實現中間變量表達式的快速配置
![通過工業智能網關實現中間<b class='flag-5'>變量</b>表達式的快速配置](https://file1.elecfans.com//web2/M00/09/13/wKgZomcE9umALAVRAABVvLOdSiw878.png)
OpenAI api key獲取并可調用GPT-4.0、GPT-4o、GPT-4omini
![OpenAI api key獲取并可調用<b class='flag-5'>GPT</b>-4.0、<b class='flag-5'>GPT</b>-4o、<b class='flag-5'>GPT</b>-4omini](https://file1.elecfans.com/web2/M00/DF/17/wKgaomYuCbSAVjVdAAFqVfXnuJY859.png)
OpenAI 推出 GPT-4o mini 取代GPT 3.5 性能超越GPT 4 而且更快 API KEY更便宜
![OpenAI 推出 <b class='flag-5'>GPT</b>-4o mini 取代<b class='flag-5'>GPT</b> 3.5 性能超越<b class='flag-5'>GPT</b> 4 而且更快 API KEY更便宜](https://file1.elecfans.com//web2/M00/FE/73/wKgaomabZkmARwBVAAKrDCcV2oQ11.webp)
GPT的定義和演進歷程
寶塔面板Docker一鍵安裝:部署GPTAcademic,開發私有GPT學術優化工具
![寶塔面板Docker一鍵安裝:部署GPTAcademic,開發私有<b class='flag-5'>GPT</b>學術優化工具](https://file1.elecfans.com//web2/M00/F7/00/wKgZomaDetqAKW_2AAMDjihaz70243.png)
國內直聯使用ChatGPT 4.0 API Key使用和多模態GPT4o API調用開發教程!
![國內直聯使用ChatGPT 4.0 API Key使用和多模態<b class='flag-5'>GPT</b>4o API調用開發教程!](https://file1.elecfans.com/web2/M00/EC/83/wKgZomZjNjyAOJtbAAJ6CFkFz_c171.png)
開發者如何調用OpenAI的GPT-4o API以及價格詳情指南
![開發者如何調用OpenAI的<b class='flag-5'>GPT</b>-4o API以及價格詳情指南](https://file1.elecfans.com/web2/M00/EA/20/wKgZomZW4A2AUr3OAAD6aRXRTyQ948.png)
OpenAI CEO: GPT-4o and GPT-5引領未來12個月編程領域,GPT-5更具潛力
【Longan Pi 3H 開發板試用連載體驗】給ChatGPT裝上眼睛,并且還可以語音對話:8,GPT接入,功能整合完成項目
如何在IAR IDE中調試基于Cortex-R52的RZ/T&N MPU的變量實時監控?
![如何在IAR IDE中調試基于Cortex-R52的RZ/T&N MPU的<b class='flag-5'>變量</b>實時<b class='flag-5'>監控</b>?](https://file1.elecfans.com/web2/M00/C5/EB/wKgZomYDsKeAIzM5AAAel4wkEUs016.png)
C語言變量應用詳解
![C語言<b class='flag-5'>變量</b>應用詳解](https://file1.elecfans.com/web2/M00/C4/BC/wKgZomX3sv2AGVWeAABMt9agjcE672.png)
評論