iMXRT1176 MCAL GPT定时器在Debug模式下关闭的方法

iMXRT1176定时器在Debug模式下关闭的方法

问题说明

在调试iMXRT1176时,Debug时定时器工作一切正常,只要暂停调试,在运行后GPT定时器要等很久才会触发中断,之后又工作正常。再暂停又不正常,以此类推。。。

原因分析

经常调试驱动的朋友可能这时已经猜到造成当前问题的原因了,是因为在Debug暂停后定时器计数还在增加,超过了设定的值,所以后面还会触发一次中断,之后不再触发中断,之所以过很长时间又触发中断是因为计数溢出,又回到了设定的计数值,所以又可以正常触发中断。
中断处理函数

解决方案

查阅芯片的参考手册,GPT模块有寄存器设置,可以在Debug模式下关闭GPT模块计数的运行,即Debug暂停,GPT计数暂停,Debug恢复运行,GPT计数继续运行。
在这里插入图片描述
以GPT1为例代码实现:

#define GPT0_BASEADDR                           ((uint32)(0x400EC000UL))
#define GPT_CR_DBGEN_BIT                      2                
uint32 * GPT0_BASEADDR_PTR = (uint32 *)GPT0_BASEADDR;

Gpt_Init(&Gpt_Config_VS_0);

/* Close GPT cnt in debug mode. */
*GPT0_BASEADDR_PTR &= ~(1 << GPT_CR_DBGEN_BIT);

这样GPT定时器Debug模式下关闭GPT模块计数的运行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值