TI论坛
直播中

陈可

8年用户 282经验值
私信 关注
[问答]

请教关于Timer实验中TCR的配置问题

在CCS3.3自带的timer例程中,配置TCR寄存器中域值,采用的是如下的方式
#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、文档中初始化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里面?

回帖(11)

余少虹

2018-7-30 09:53:36
请问你用的是哪款器件?
具体配置步骤可以到CSL源代码中去查看。
举报

陈可

2018-7-30 10:11:49
引用: vuywsdfwf 发表于 2018-7-30 09:53
请问你用的是哪款器件?
具体配置步骤可以到CSL源代码中去查看。

TMS320VC5509   

TINT表达式中为什么TDDR与PRD分别加1,并且timer period(TDDR+1)(PRD+1)必须大于等于4个周期?
举报

余少虹

2018-7-30 10:27:15
1.是的,表示要初始化的值。
举报

余少虹

2018-7-30 10:35:27
如果你看一下csl源代码的话,在TIMER_config函数里最后有对TSS位置1,所以和文档不矛盾。

PREG16(((TIMER_PrivateObj*)hTimer)->TcrAddr) = 0x0010;


举报

更多回帖

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