您的位置 首页 IC

如何使用GPT监控变量

在项目调试过程中,需要监控变量通常采用ICS(In Circuit Scope)和DA两种方法。使用ICS会占用MCU的资源(UART)以及增加硬件的成本(ICS硬件板);如果MC…

在项目调试过程中,需要监控变量通常采用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为测试点,如下图所示。
wKgZomWWMqKAXJXrAAAtyaW9sWU551

硬件电路
三、软件配置
以下介绍如何在项目中配置GPT来实现该功能。这里以创建新工程为例,也可以把以下GPT的配置直接加入到已有工程中(从步骤7开始)。
1运行e2 studio,选择“文件”→“新建”→“C/C++ Project”,如图1。
wKgZomWWMqOAfc2eAAE6HGHvGgE279

图1 创建新项目步骤一
e2 studio(瑞萨IDE)
2选择“Renesas RX”和“Renesas CC-RX C/C++ Executable Project”,点击“下一步”,如图2。
wKgZomWWMqOAKmhFAAHyTzarBOo146

图2 创建新项目步骤二
3设置项目目录,输入项目名称,点击“下一步”,如图3。
wKgZomWWMqOADn1iAAFmZUn83nk770

图3 创建新项目步骤三
4选择Toolchain版本,选择MCU型号、“Endian”和仿真器,点击“下一步”,如图4。
wKgZomWWMqOADRhPAAIU0_Nz3qI150

图4 创建新项目步骤四
5勾选“Use Smart Configurator”,点击“完成”,如图5。
wKgZomWWMqSAF4PzAAJ6Wjpo5iY165

图5 创建新项目步骤五
6创建完成的程序结构如图6。
wKgZomWWMqSALdRSAAKJQTvY970323

图6 程序结构图
7点击“Components” → “Add component”,选择“General PWM Timer”,Work mode选择“Saw-wave PWM mode 1”,Resource选择“GPT0”(这里以GPT0为例,也可以选择其他GPT),如图7。
wKgZomWWMqSAUjqvAAGhE8nO1QU274

图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。
wKgZomWWMqSAPBj_AAI1fp-KDiA125

图8 配置GPT0(1)
wKgZomWWMqWAF2t6AAMX9TQcE-c284

图9 配置GPT0(2)
wKgZomWWMqWACeUxAAMCeFWyP54442

图10 配置GPT0(3)
wKgZomWWMqWAaXunAALQ-SrlWao504

图11 配置GPT0(4)
9因为上面使用了“GTCIV0”中断,点击“Interrupts”,把252改成“GTCIV0”后其状态会变更为“Used”,如图12。
wKgZomWWMqWALr1xAAJIqd9UT70977

图12 设置中断
10点击“Generate code”后将会生成GPT0的代码,如图13。
wKgZomWWMqaAZCb_AARxNDgy2eg275

图13 生成GPT0的代码
11在main( )中添加如下代码启动GPT0,如图14。
wKgZomWWMqaAVeunAAJ31Xujhko711

图14 添加GPT0启动代码
12在GTCIV0中断中将监控变量的值设置到比较匹配寄存器GTCCRA中,如图15。
wKgZomWWMqaACk_IAAQBglsAFQw799

图15 设置GTCCRA
13以下为假设监控变量的值(即GTCCRA的值)分别为256、512、768时输出的波形,如图16、17、18。
举例说明如何算出监控变量的值:从图16中我们可以看出输出电压为0.83V,从0.83V*1023/3.3V = 257.3反推出监控变量的值为257.3(因为示波器测量电压有误差,所以反推出的值有误差)。
wKgZomWWMqaAd-NUAABGMOz6Nug257

图16 GTCCRA = 256
wKgZomWWMqeAGSKIAABGkGorBlM638

图17 GTCCRA = 512
wKgZomWWMqeAJ5YeAABFmcuK5v0702

图18 GTCCRA = 768
从图16、17、18的波形可以看出来,输出电压会根据GTCCRA值的变化而变化,从而我们可以反推出监控变量的实时值。
通过以上硬件电路和软件配置,我们就实现了用GPT的比较匹配功能来达到监控变量的目的。
声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/xinpin/350658.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部