嵌入式开发者社区

标题: 基于TL138/1808/6748-EVM开发板 基于startware 关于定时器的 问题 [打印本页]

作者: ri616688707    时间: 2017-1-12 16:50
标题: 基于TL138/1808/6748-EVM开发板 基于startware 关于定时器的 问题
我用的是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)


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


作者: ri616688707    时间: 2017-1-12 16:52
求大神 指导
作者: 70010x    时间: 2017-1-12 17:12
重载周期改成0x800试一试
作者: ri616688707    时间: 2017-1-12 17:24
70010x 发表于 2017-1-12 17:12
重载周期改成0x800试一试

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


重载周期 低位改成了 0X800 高位  依旧为0  还是没有效果啊  请大神 再指导下 谢啦
作者: ri616688707    时间: 2017-1-12 19:53
斌哥  我是你的粉丝啊  求解决啊 ????




欢迎光临 嵌入式开发者社区 (https://www.51ele.net/) Powered by Discuz! X3.4