创龙科技
直播中

刘琪琛

7年用户 162经验值
私信 关注

基于TL138/1808/6748-EVM开发板定时器第三种工作模式不起作用

[tr]我用的是6748 EVM 开发板 基于startware dsp6748的开发环境  ccs5.5  仿真器 100V2

我参考咱们的 例程 tiMER 把 定时器2 设置为通用的64为计数器
来分别验证以下三种工作模式
1、一次工作(定时器运行一个周期然后停止)
2、持续工作(定时器在每个周期结束自动清零并继续工作)
3、– 持续工作周期性重载(定时器在每个周期自动获取重载寄存器的值并继续工作)

前两种 模式 都工作正常
第三种 工作模式 不起作用
以下是我的代码
void TimerInit(void)
{
        //TimerDisable(SOC_TMR_2_REGS, TMR_TIMER_BOTH);
        // 配置 定时器 / 计数器 2 为 64 位模式
    TimerConfigure(SOC_TMR_2_REGS, TMR_CFG_64BIT_CLK_INT);

    // 设置周期为一秒
    TimerPeriodSet(SOC_TMR_2_REGS, TMR_TIMER12, TMR_PERIOD_LSB32);
    TimerPeriodSet(SOC_TMR_2_REGS, TMR_TIMER34, TMR_PERIOD_MSB32);

    // 设置重载周期为五秒
    TimerReloadSet(SOC_TMR_2_REGS, TMR_TIMER12, TMR_RELOA_LSB32);
    TimerReloadSet(SOC_TMR_2_REGS, TMR_TIMER34, TMR_RELOAD_MSB32);
    // 使能 定时器 / 计数器 2 为连续重载模式
    TimerEnable(SOC_TMR_2_REGS, TMR_TIMER12, TMR_ENABLE_CONTRELOAD);

    // 使能 定时器 / 计数器 2
    //TimerEnable(SOC_TMR_2_REGS, TMR_TIMER12, TMR_ENABLE_CONT);
}


// 64位 定时器 / 计数器周期
// 定时时间 1 秒
// 低32位
#define TMR_PERIOD_LSB32  (0x0D970100)
// 高32位 0
#define TMR_PERIOD_MSB32  (0)

// 64位 定时器 / 计数器周期
// 定时时间5 秒
// 低32位
#define TMR_RELOA_LSB32      (0X43F30500)
// 预定标分频计数
#define TMR_RELOAD_MSB32     (0)


  我自己调试了半天了  手册也看了几遍  始终没有发现问题 还望创龙给予技术支持  多谢啦


[/tr]

回帖(1)

向芹

2019-4-28 10:29:06

#define TMR_RELOA_LSB32      (0X800)
// 预定标分频计数
#define TMR_RELOAD_MSB32     (0)


重载周期 低位改成了 0X800 高位  依旧为0  还是没有效果啊  请大神 再指导下 谢啦
举报

更多回帖

发帖
×
20
完善资料,
赚取积分