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、我把TSS配置改为TIMER_TCR_TSS_STOP,即TSS=0,发现程序正常运行,那这样的话,TCR寄存器中各位的值,何时配置成0或1?
文档中初始化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里面? yangmm11 发表于 2014-11-20 13:28 static/image/common/back.gif
文档中初始化Timer的步骤中:
第一步:TSS=1,TLB=1时,PRD与TDDR中的值被加载到TIM和PSC中
将预定标计数器(PRSC)和主计数器(TIM)的周期数分别写入到TDDR和PRD中,也就是将周期数载入到对应的周期寄存器中。
YuichiHsin 发表于 2014-11-20 21:48 static/image/common/back.gif
将预定标计数器(PRSC)和主计数器(TIM)的周期数分别写入到TDDR和PRD中,也就是将周期数载入到对应的周 ...
谢谢啦,终于弄明白了,原来是我自己理解有误。 自己顶一下,希望有人给解答一下啊。 yangmm11 发表于 2014-11-20 13:28 static/image/common/back.gif
文档中初始化Timer的步骤中:
第一步:TSS=1,TLB=1时,PRD与TDDR中的值被加载到TIM和PSC中
你看一下Timer的结构框图 应该就能理解PRD与TDDR设置好后加载的周期寄存器中的过程 首先被配置为TIMER_TCR_TSS_START, /* TSS == 0 */ \
应该是定时器在没有配置使能之前默认为TSS = 1的
zhangmangui 发表于 2014-11-21 23:24 static/image/common/back.gif
你看一下Timer的结构框图 应该就能理解PRD与TDDR设置好后加载的周期寄存器中的过程 ...
恩,已经弄明白了,非常感谢! yangmm11 发表于 2014-11-20 13:28
文档中初始化Timer的步骤中:
第一步:TSS=1,TLB=1时,PRD与TDDR中的值被加载到TIM和PSC中
不错
页:
[1]