完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
在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 个讨论
|
|
|
启动后,TDDR,PRD的值会load到TIM, PSC, TIM, PSC开始减一计数。这句话的意思不是每次来一个时钟,TDDR进行减一操作,直到值为0,然后PRD开始减一操作,直到值为0。比如TDDR=5,PRD=4,那这样的话,在每个周期内,来5个时钟之后,TDDR减为0,总共4个周期,总的定时器减为0所需的时钟应该为5*4=20,但是按照上面的式子,应该是(5+1)*(4+1)=30,这是为什么? |
|
|
|
|
|
|
|
JASONbzyhzlq 发表于 2018-7-30 11:20 前面说过了,加1是因为TDDR, PRD都是从0开始算的。 所以您要实现5*4=20的话,TDDR=4, PRD=3. |
|
|
|
|
|
|
|
|
我的意思是这个公式代表的是定时器发送中断信号的频率。PSC在每个输入时钟周期减1,当其减到0时,TIM减1;当TIM减到0时,定时器向CPU发送一个中断请求。 那这样的话CPU发送一个中断请求所需的时钟个数不就是PSC*TIM吗?比如PSC为5的话,需5个时钟周期减为0;TIM为4的话,需4个时钟减为0? 难道不是在第一个时钟来之后,就开始减1了吗?还是在第一个时钟来之后没有减1? |
|
|
|
|
|
|
|
JASONbzyhzlq 发表于 2018-7-30 11:44 Timer文档中有这么一段话可以理解一下。 The prescaler counter is driven by an input clock, which can be the CPU clock or an external clock. PSC is decremented by 1 every input clock cycle. One cycle after PSC reaches 0, the TIM is decremented by 1. One cycle after TIM reaches 0, the timer sends an interrupt request (TINT) to the CPU |
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
549 浏览 0 评论
1613 浏览 0 评论
2047 浏览 0 评论
为啥BQ7693003DBTR芯片在和BQ769X0盒子通讯时收不到信号?
1513 浏览 0 评论
DSP 28027F 开发板 XDS100v2调试探针诊断日志显示了 Error -150 (SC_ERR_FTDI_FAIL)如何解决
1337 浏览 0 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
1757浏览 29评论
2781浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
1724浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
1634浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
1645浏览 13评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 08:03 , Processed in 0.986465 second(s), Total 82, Slave 67 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
2573