原创 CC2510芯片功能学习:Timer1

2008-5-7 22:41 4437 8 8 分类: MCU/ 嵌入式

===


主要是翻译芯片datasheet的内容


===


Timer1


 


Timer116比特定时器。可实现典型的定时/计数功能,比如输入捕捉、输出比较、PWM(脉宽调制)。


Timer13个独立的输入捕捉/输出比较通道,每个通道对应1个引脚。


 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />


Timer1的特性包括:


l         3个输入捕捉/输出比较通道;


l         输入捕捉可定义上升沿、下降沿或任意边缘触发;


l         输出比较的SetCleartoggle


l         计数器:Free-running, modulo or up/down


l         计数时钟是时钟除以1, 8, 32128


l         中断;


l         由射频触发的Capture


l         DMA触发功能;


l         Delta-Sigma调制模式;


 


计数模式:


计数模式下,16比特的计数器随着有效的时钟跳变(上升沿、下降沿或任意)递增或递减。


时钟频率由CLKCON.TICKSPDT1CTL.DIV指定。CLKCON.TICKSPD设置timertick speedtick speed与芯片晶振频率有关。对晶振频率26MHzCC2510Fxtick speed的范围是203.125kHz26 MHzT1CTL.DIVtick speed进一步分频(1, 8, 32128),因此Timer1使用的最低时钟频率是1.587kHz


 


The counter operates as either a free-running counter, a modulo counter, or as an up/down counter for use in centre-aligned PWM. It can also be used in DSM mode.


 


计数器的值可以通过SFRT1CNTH T1CNTL读出。读出的顺序是先读T1CNTL


T1CNTL寄存器的操作会reset计数器。


当计数器溢出时可以产生中断。


通过T1CTL可以控制计数器的启动或暂停。向T1CTL.MODE写入00使计数器停在当前值,写入非0值可以使计数器继续工作。


 


T1CTL决定Timer的运行模式。


Free-running模式:从0000开始递增,递增到0xFFFF时,在下一个触发沿变为0x0000。当递增到0xFFFF时,称为overflow(溢出),T1CTL.OVFIF标志被设置。如果中断屏蔽位TIMIF.OVFIM被设置的话,中断标志IRCON.T1IF也会被设置。当中断允许位TIMIF.OVFIM IEN1.T1EN都被设成1时,产生中断。


 


Modulo模式:Modulo模式和Free-running模式很相似。不同的是通过寄存器T1CC0H:T1CC0L设置了计数器的溢出门限。


 


Up/Down模式:在Up/Down模式,计数器从0开始递增,当到达T1CC0H:T1CC0L设置了的溢出门限后,改为递减,递减到0后再改为递增。递减到0时,定义为overflow


 


The up/down mode can be used when symmetrical output pulses are required with a period other than 0xFFFF, and therefore allows implementation of  centrealigned PWM output applications.


 


 


通道模式控制


通过各通道的控制及状态寄存器T1CCTLn来设置通道的模式,相应地还要将引脚设置为Timer 1外设引脚模式。


 


输入捕捉模式:当一个通道被配置为输入捕捉模式时,当对应的引脚的电平发生指定的跳变时,16比特计数器的值会被读入到指定的通道寄存器T1CCnH:T1CCnL


当捕捉事件发生时,相应通道的中断标志T1CTL.CH0IF, T1CTL.CH1IFT1CTL.CH2IF将被设置。当对应的中断屏蔽位T1CCTL0.IM, T1CCTL1.IMT1CCTL2被设置的话,IRCON.T1IF标志位会被设置,当IEN1.T1EN中断允许的话,产生中断。


 


射频事件捕捉


各通道还可以设置为由射频中断来触发捕捉事件,设置方式是T1CCTLn.CPSEL=1。这时由RFIM定义的射频事件可以用来触发捕捉。该模式下,CLKCON.CLKSPDCLKCON.TICKSPD 必须设置为000


 


输出比较模式:输出比较模式下的相关引脚为输出引脚。当自由运行的计数器的值与通道寄存器T1CCnH:T1CCnL的值相同时,引脚的电平按照T1CCTLn.CMP的定义设为高电平、低电平或电平反转(toggle)。写T1CCnH:T1CCnL的顺序是先写T1CCnL再写T1CCnH


对于输出比较模式0-2,当将新的设置值写入T1CCnH:T1CCnL寄存器后,该设置值就生效。对于其它输出比较模式,将新的设置值写入T1CCnH:T1CCnL寄存器后,当计数寄存器的值为0时,该新的设置值生效。


当比较事件发生时,相应通道的中断标志T1CTL.CH0IF, T1CTL.CH1IFT1CTL.CH2IF将被设置。当对应的中断屏蔽位T1CCTL0.IM, T1CCTL1.IMT1CCTL2被设置的话,IRCON.T1IF标志位会被设置,当IEN1.T1EN中断允许的话,产生中断。特殊情况是,当Timer1运行在up-down模式时,通道0的中断标志在计数器到达0时产生,而不是在比较事件发生时产生。


 


Timer1中断


Timer11个专门的中断向量。中断事件包括计数器溢出(free-running模式和Time-Modulo模式)或计数器回0Up-Down模式)、输入捕捉事件、输出比较事件。


中断标志位:T1CTL.OVFIF, T1CTL.CH0IF, T1CTL.CH1IF, T1CTL.CH2IFIRCON.T1IF


中断屏蔽位:T1CCTLn.IMTIMIF.OVFIM


中断使能:IEN1.T1EN


 


Timer1 DMA触发器


Timer1对应3DMA TriggerT1_CH0, T1_CH1 and T1_CH2。分别在3个通道的输出比较事件产生时触发。


注:估计是用于利用DMA来设置T1CCn来实现PWM


 

 

文章评论0条评论)

登录后参与讨论
我要评论
0
8
关闭 站长推荐上一条 /2 下一条