===
主要是翻译芯片datasheet的内容
===
Timer1
Timer1是16比特定时器。可实现典型的定时/计数功能,比如输入捕捉、输出比较、PWM(脉宽调制)。
Timer1有3个独立的输入捕捉/输出比较通道,每个通道对应1个引脚。
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
Timer1的特性包括:
l 3个输入捕捉/输出比较通道;
l 输入捕捉可定义上升沿、下降沿或任意边缘触发;
l 输出比较的Set,Clear或toggle;
l 计数器:Free-running, modulo or up/down;
l 计数时钟是时钟除以1, 8, 32或128;
l 中断;
l 由射频触发的Capture;
l DMA触发功能;
l Delta-Sigma调制模式;
计数模式:
计数模式下,16比特的计数器随着有效的时钟跳变(上升沿、下降沿或任意)递增或递减。
时钟频率由CLKCON.TICKSPD和T1CTL.DIV指定。CLKCON.TICKSPD设置timer的tick speed,tick speed与芯片晶振频率有关。对晶振频率26MHz的CC2510Fx,tick speed的范围是203.125kHz到26 MHz。T1CTL.DIV对tick speed进一步分频(1, 8, 32或128),因此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.
计数器的值可以通过SFR:T1CNTH 和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.CH1IF或T1CTL.CH2IF将被设置。当对应的中断屏蔽位T1CCTL0.IM, T1CCTL1.IM或T1CCTL2被设置的话,IRCON.T1IF标志位会被设置,当IEN1.T1EN中断允许的话,产生中断。
射频事件捕捉
各通道还可以设置为由射频中断来触发捕捉事件,设置方式是T1CCTLn.CPSEL=1。这时由RFIM定义的射频事件可以用来触发捕捉。该模式下,CLKCON.CLKSPD和CLKCON.TICKSPD 必须设置为000。
输出比较模式:输出比较模式下的相关引脚为输出引脚。当自由运行的计数器的值与通道寄存器T1CCnH:T1CCnL的值相同时,引脚的电平按照T1CCTLn.CMP的定义设为高电平、低电平或电平反转(toggle)。写T1CCnH:T1CCnL的顺序是先写T1CCnL再写T1CCnH。
对于输出比较模式0-2,当将新的设置值写入T1CCnH:T1CCnL寄存器后,该设置值就生效。对于其它输出比较模式,将新的设置值写入T1CCnH:T1CCnL寄存器后,当计数寄存器的值为0时,该新的设置值生效。
当比较事件发生时,相应通道的中断标志T1CTL.CH0IF, T1CTL.CH1IF或T1CTL.CH2IF将被设置。当对应的中断屏蔽位T1CCTL0.IM, T1CCTL1.IM或T1CCTL2被设置的话,IRCON.T1IF标志位会被设置,当IEN1.T1EN中断允许的话,产生中断。特殊情况是,当Timer1运行在up-down模式时,通道0的中断标志在计数器到达0时产生,而不是在比较事件发生时产生。
Timer1中断
Timer1有1个专门的中断向量。中断事件包括计数器溢出(free-running模式和Time-Modulo模式)或计数器回0(Up-Down模式)、输入捕捉事件、输出比较事件。
中断标志位:T1CTL.OVFIF, T1CTL.CH0IF, T1CTL.CH1IF, T1CTL.CH2IF,IRCON.T1IF
中断屏蔽位:T1CCTLn.IM,TIMIF.OVFIM
中断使能:IEN1.T1EN
Timer1 DMA触发器
Timer1对应3个DMA Trigger:T1_CH0, T1_CH1 and T1_CH2。分别在3个通道的输出比较事件产生时触发。
注:估计是用于利用DMA来设置T1CCn来实现PWM。
文章评论(0条评论)
登录后参与讨论