你发现不了的问题->C6748定时器例程(64位模式)BUG

项目场景:

使用TMS320C6748的startware的定时器例程(64位模式),设置低32位(LSB)与高32位(MSB)定时周期并触发中断。


问题描述:

      设置64位模式的定时器一个计数周期内会进入两次中断,例如设置定时器时钟228MHz,LSB = 0x0D970100(1s),MSB = 1,会在1s先进入一次中断,然后18.84s再进入一次中断。


原因分析:

      低32位(LSB)与高32位(MSB)各触发中断一次,当LSB定时计数器累加到0x0D970100(1s)触发中断一次,LSB+MSB定时计数器累加到0xFFFFFFFF+0x0D970100触发中断一次

      定时器全局控制寄存器 (TGCR)中PLUSEN位置0,即使能向下兼容能力。定时器新特性不可用,而TI未对定时器的64位模式进行说明。

定时器的新特性有:

  1. 外部时钟/时间输入
  2. 周期重载
  3. 外部事件捕获模式
  4. 定时器计数寄存器读取复位模式
  5. 定时器计数寄存器读取复位模式
  6. 用于中断 /DMA 产生控制和状态的寄存器

解决方案:

设置 (TGCR)中PLUSEN位置:0,即修改宏定义TMR_CFG_64BIT_CLK_INT为:0x00000003u,另外修改TimerConfigure()底层函数如下图所示。

想获得更多FPGA\DSP\ARM原创文章,请关注上面微信公众号
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值