打印
[DSP编程]

Timer实验中TCR的配置

[复制链接]
2620|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yangmm11|  楼主 | 2014-11-20 10:32 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
#define TIMER_CTRL    TIMER_TCR_RMK(\
                      TIMER_TCR_IDLEEN_DEFAULT,    /* IDLEEN == 0 */ \
                      TIMER_TCR_FUNC_OF(0),        /* FUNC   == 0 */ \
                      TIMER_TCR_TLB_RESET,         /* TLB    == 1,timer loading is enabled*/ \
                      TIMER_TCR_SOFT_BRKPTNOW,     /* SOFT   == 0 */ \
                      TIMER_TCR_FREE_WITHSOFT,     /* FREE   == 0 */ \
                      TIMER_TCR_PWID_OF(0),        /* PWID   == 0 */ \
                      TIMER_TCR_ARB_RESET,         /* ARB    == 1 */ \
                      TIMER_TCR_TSS_START,         /* TSS    == 0 */ \
                      TIMER_TCR_CP_PULSE,          /* CP     == 0 */ \
                      TIMER_TCR_POLAR_LOW,         /* POLAR  == 0 */ \
                      TIMER_TCR_DATOUT_0           /* DATOUT == 0 */ \
)  


/* Create a TIMER configuration structure that can be passed */
/* to TIMER_config CSL function for initialization of Timer  */
/* control registers.                                        */
TIMER_Config timCfg0 = {
   TIMER_CTRL,               /* TCR0 */
//   0x0420,
   0x3400u,                  /* PRD0 */
   0x0000                    /* PRSC */
};


1、上述为Timer实验中TCR寄存器的配置,上述配置的值代表的应该是初始化Timer时,各寄存器中的状态吧?
2、文档中在说明初始化寄存器时,第一步是确保定时器停止,即TSS=1。那为什么上述TCR寄存器配置中TSS=0

3、我把TSS配置改为TIMER_TCR_TSS_STOP,  即TSS=0,发现程序正常运行,那这样的话,TCR寄存器中各位的值,何时配置成0或1?

相关帖子

沙发
yangmm11|  楼主 | 2014-11-20 13:28 | 只看该作者
文档中初始化Timer的步骤中:

第一步:TSS=1,TLB=1时,PRD与TDDR中的值被加载到TIM和PSC中

第二步:PSC被写入到TDDR

第三步:TIM装入到PRD

第四步:TSS=0,TLB=0,TIM保持PDR的值,PSC保持TDDR的值

在这个步骤的过程中,第二步、第三步是什么意思,PSC与TIM中的值怎么又被装到了TDDR与PRD里面?

使用特权

评论回复
板凳
YuichiHsin| | 2014-11-20 21:48 | 只看该作者
yangmm11 发表于 2014-11-20 13:28
文档中初始化Timer的步骤中:

第一步:TSS=1,TLB=1时,PRD与TDDR中的值被加载到TIM和PSC中

将预定标计数器(PRSC)和主计数器(TIM)的周期数分别写入到TDDR和PRD中,也就是将周期数载入到对应的周期寄存器中。

使用特权

评论回复
地板
yangmm11|  楼主 | 2014-11-21 09:18 | 只看该作者
YuichiHsin 发表于 2014-11-20 21:48
将预定标计数器(PRSC)和主计数器(TIM)的周期数分别写入到TDDR和PRD中,也就是将周期数载入到对应的周 ...

谢谢啦,终于弄明白了,原来是我自己理解有误。

使用特权

评论回复
5
yangmm11|  楼主 | 2014-11-21 09:19 | 只看该作者
自己顶一下,希望有人给解答一下啊。

使用特权

评论回复
6
zhangmangui| | 2014-11-21 23:24 | 只看该作者
yangmm11 发表于 2014-11-20 13:28
文档中初始化Timer的步骤中:

第一步:TSS=1,TLB=1时,PRD与TDDR中的值被加载到TIM和PSC中

你看一下Timer的结构框图    应该就能理解PRD与TDDR设置好后加载的周期寄存器中的过程

使用特权

评论回复
7
zhangmangui| | 2014-11-21 23:27 | 只看该作者
首先被配置为TIMER_TCR_TSS_START,         /* TSS    == 0 */ \
应该是定时器在没有配置使能之前默认为TSS = 1的   

使用特权

评论回复
8
yangmm11|  楼主 | 2014-11-24 12:15 | 只看该作者
zhangmangui 发表于 2014-11-21 23:24
你看一下Timer的结构框图    应该就能理解PRD与TDDR设置好后加载的周期寄存器中的过程 ...

恩,已经弄明白了,非常感谢!

使用特权

评论回复
9
heaven3933| | 2015-10-28 16:04 | 只看该作者
yangmm11 发表于 2014-11-20 13:28
文档中初始化Timer的步骤中:

第一步:TSS=1,TLB=1时,PRD与TDDR中的值被加载到TIM和PSC中

不错

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

67

帖子

0

粉丝