1、
定时器1是一个独立的16位定时器,有五个独立的捕获/比较通道,每一通道使用一个I/O引脚。
在每个活动时钟边沿递增或递减,活动时钟边沿周期由寄存器CLKCONCMD.TICKSPD定义,时钟频率范围为0.25M~32M。进一步频率划分可通过T1CTL.DIV来设置,其取值有1、8、32或128。因此,用32MHz为系统时钟源时,定时器1可以使用的最低时钟频率为1953.125Hz,最高为32MHz。
2、
可以通过两个8位的SFR读取16位的计数器值:T1CNTH和T1CNTL,分别包含高位和低位字节。
当读取T1CNTL时,计数器的高位字节在那时被缓冲到T1CNTH,以便高位字节可以从T1CNTH中读出。因此T1CNTL必须总是在读取T1CNTH之前首先读取。
3、
对T1CNTL寄存器的所有写入访问将复位16位计数器。
当达到最终计数值(溢出)时,计数器产生一个中断请求。
可以通过设置T1CTL来控制定时器开始或挂起。如果是非00值写入T1CTL.MODE时,计数器开始运行;如果是00写入T1CTL.MODE,计数器停止在它现在的值上。
4、操作模式
(1)、自由运行模式(Free-Running Mode):
计数器从0x0000开始,每个活动时钟边沿增加1,当计数器达到0XFFFF,计数器重新载入0X0000,继续递增它的值。
当终端计数器的值达到0XFFFF时,设置IRCON.T1IF和T1STAT.OVFIF。如果同时设置了TIMIF.OVFIM和IEN1.T1EN,将产生一个中断请求。
自由运行模式可以用于产生独立的时间间隔,输出信号频率。
(2)模模式(Modulo Mode):
16位计数器从0X0000开始,每个活动时钟边沿增加1,当计数器达到寄存器T1CC0(T1CC0H:T1CC0L)保存的最终计数值,计数器将复位到0X0000,并继续递增。
如果计数器以大于T1CC0的值开始,当终端计数器达到0XFFFF时,将设置IRCON.T1IF和T1STAT.OVFIF。
如果设置了TIMIF.OVFIM和IEN1.T1EN,将产生一个中断请求。
模模式可以用于周期不必是0XFFFF的应用程序。
(3)正计数/倒计数模式(Up/Down Mode)
计数器反复从0X0000开始,正计数直到达T1CC0保存的值,然后计数器将倒计数直到0X0000。
用于周期必须是对称输出脉冲而不是0XFFFF的应用程序,因此允许中心对齐的PWM是输出应用的实现。
当计数器达到0X0000时,设置IRCON.T1IF和T1STAT.OVFIF。如果设置了TIMIF.OVFIM和IEN1.T1EN,将产生一个中断请求。
(4)通道模式控制(Channel Mode Control)
通道模式随着每个通道的控制和状态寄存器T1CCTLn设置,设置包括输入捕获和输出比较模式。
(4)(1)、输入捕获模式(Input Capture Mode)
当一个通道配置位输入捕获通道,和该通道相关的I/O引脚必须被配置为输入。
在启动定时器之后,输入引脚的一个上升沿、下降沿或任何边沿都将触发一个捕获,即把16位计数器(T1CNTH:T1CNTL)内容捕获到相关的捕获寄存器(T1CCnH:T1CCnL)中,因此定时器可以捕获一个外部事件发生的时间。
在定时器使用I/O引脚之前,要求的I/O引脚必须被配置为定时器1外设引脚。
通道输入引脚同步于系统内部时钟,因此输入引脚上的脉冲的最低持续时间必须大于系统时钟周期。
当捕获发生时,IRCON.T1IF和T1STAT.CHnIF被设置,如果设置了T1CCTLn.IM和IEN1.T1EN,将产生一个中断请求。
(4)(2)、输出比较模式(Output Compare Mode)
在输出比较模式,与通道相关的I/O引脚设置为输出。
在定时器启动后,将比较计数器(T1CNTH:T1CNTL)和捕获寄存器(T1CCnH:T1CCnL)的内容;如果捕获寄存器和计数器内容相等,则就设置输出引脚(根据比较输出模式T1CCTLn.CMP的设置进行复位或切换)
写入T1CCnL的值不起作用,它正在被缓冲,除非其相应的高位寄存器T1CCnH已被写入。直到计数器值为0X00时,写入比较寄存器(T1CCnH:T1CCnL)才有效。
注意通道0的输出比较模式较少,因为T1CC0H:T1CC0L在模式6和7有一个特殊功能,意味着通道0不能用于输出比较模式。
当发生一个比较时,将设置IRCON.T1IF和T1STAT.CHnIF;如果设置了T1CCTLn.IM和IEN1.T1EN,将生成一个中断请求。
5、定时器1中断
定时器分配了一个中断向量,当下列定时器事件发生时,将产生一个中断请求:
(1)、计数器达到最终计数值;
(2)、输入捕获事件;
(3)、输出捕获事件。
状态寄存器T1STAT包含计数到达终点事件和5个捕获/比较事件产生的中断标志位。仅当相应的中断使能位IEN1.T1EN一起被设置后中断请求才会产生。
6、定时器1DMA触发
有三种DMA触发与定时器1有关,分别为T1_CH0,T1_CH1,T1_CH2,他们是在通道比较事件中触发;通道3和4没有DMA触发。
7、定时器1寄存器
与定时器1相关的定时器有
T1CNTH、T1CNTL:定时器1计数器高低字节
T1CTL:定时器1控制器
T1STAT:定时器1状态标志位
T1CCTLn:定时器1捕获/比较控制
T1CCnH、T1CCnL:定时器1捕获寄存器高低字节。
TIMIF:定时器1/3/4中断屏蔽/标志
T1CTL:定时器1控制器
端口 | Bit位 | 名称 | 初始化 | 读/写 | 描述 |
T1CTL | 7:4 | --- | 0000 | R0 | 未使用 |
3:2 | DIV[1:0] | 00 | R/W | 时钟分频 00:不分频 01:8分频 10:32分频 11:128分频 |
1:0 | MODE[1:0] | 00 | R/W | 定时器1模式选择 00:暂停运行 01:自由模式(从0X0000至OXFFFF反复计数) 10:模模式(从0X0000至T1CCnH:T1CCnL反复计数) |
T1STAT定时器1状态标志位
端口 | Bit位 | 名称 | 初始化 | 读/写 | 描述 |
T1STAT | 7:6 | --- | 00 | R0 | 未使用 |
5 | OVFIF | 0 | R/W0 | 定时器1计数器溢出中断标志,在自由模式和模模式到达终点计数值,在正/倒计数模式中到达0。写1无效。 |
4 | CH4IF | 0 | R/W0 | 定时器1通道4中断标志位,当通道4中断条件发生时设置。写1无效。 |
3 | CH3IF | 0 | R/W0 | 定时器1通道3中断标志位,当通道3中断条件发生时设置。写1无效。 |
2 | CH2IF | 0 | R/W0 | 定时器1通道2中断标志位,当通道2中断条件发生时设置。写1无效。 |
1 | CH1IF | 0 | R/W0 | 定时器1通道1中断标志位,当通道1中断条件发生时设置。写1无效。 |
0 | CH0IF | 0 | R/W0 | 定时器1通道0中断标志位,当通道0中断条件发生时设置。写1无效。 |
T1CCTLn:定时器1捕获/比较控制
端口 | Bit位 | 名称 | 初始化 | 读/写 | 描述 |
T1CCTLn | 7 | RFIRQ | 0 | R/W | 通道n捕获选择 0:正常捕获输入 1:RF捕获中断 |
6 | IM | 1 | R/W | 通道n中断屏蔽 0:禁止通道n中断请求 1:使能通道n中断请求 |
5:3 | CMP[2:0] | 000 | R/W | 通道n比较模式选择,当定时器的值等于T1CC0中的比较值时,选择操作输出 000:发生比较时输出端置1 001:发生比较时输出端置0 010:发生比较时输出端翻转 011: 通道0:上升沿比较输出设置,0清除 通道1(或2或3或4):在正/倒计数模式下,上升沿比较设置,下降沿比较输出清除;否则比较输出设置,0清除 100: 通道0:上升沿比较输出清除,0设置 通道1(或2或3或4):在正/倒计数模式下,上升沿比较清除,下降沿比较输出设置;否则比较输出清除,0设置 101: 通道0:没使用 通道1(或2或3或4):等于T1CC0清除,等于T1CCn设置。 110: 通道0:没使用 通道1(或2或3或4):等于T1CC0设置,等于T1CCn清除。 111:初始化输出引脚,CMP[2:0]不改变。 |
2 | MODE | 0 | R/W | 定时器1通道n模式选择: 0:捕获模式 1:输出模式 |
1:0 | CAP[1:0] | 00 | R/W | 通道n捕获模式选择 00:无捕获 01:上升边沿捕获 10:下降边沿捕获 11:所有边沿捕获 |
TIMIF:定时器1/3/4中断屏蔽/标志
端口 | Bit位 | 名称 | 初始化 | 读/写 | 描述 |
TIMIF | 7 | --- | 0 | R0 | 未使用 |
6 | OVFIM | 1 | R/W | 定时器1溢出中断屏蔽 |
5 | T4CH1IF | 0 | R/W0 | 定时器4通道1中断标志 0:无中断未决 1:中断未决 |
4 | T4CH0IF | 0 | R/W0 | 定时器4通道0中断标志 0:无中断未决 1:中断未决 |
3 | T4OVFIF | 0 | R/W0 | 定时器4溢出中断标志 0:无中断未决 1:中断未决 |
2 | T3CH1IF | 0 | R/W0 | 定时器3通道1中断标志 0:无中断未决 1:中断未决 |
1 | T3CH0IF | 0 | R/W0 | 定时器3通道0中断标志 0:无中断未决 1:中断未决 |
0 | T3OVFIF | 0 | R/W0 | 定时器3溢出中断标志 0:无中断未决 1:中断未决 |