PIC24HJ64GP502由五个16位定时器,其中timer1为A类定时器,timer2/4为B类定时器,timer3/5为C类定时器
一、关于A\B\C类定时器的区别
关于ABC三类定时器的区别,没有找到相关的官方文献,仅通过对比官方12-1,13-1,13-2的框图及文档资料做如下总结:
1、A类定时器(timer1)可以使用辅助时钟源(即32.768KHz的LP时钟源),其他定时器只能使用外部TXCK或内部Fcy作为时钟源。
2、A类定时器(timer1)可以使用TSYNC置1同步外部时钟(LP或T1CK)或者置0不同步外部时钟(异步),其他定时器只能使用同步外部时钟,没有相关配置位。
3、A/B类时钟同步发生在预分频器后发生,C类时钟同步发生在预分频之前。
4、C类定时器的可触发ADC转换信号,其他定时器无此功能。
5、B/C类定时器可组合为32位定时器
二、A类定时器的配置
1、A类定时器(timer1)有四种工作模式,分别为定时器模式、门控定时器模式、同步计数器模式、异步计数器模式;相关配置位见下图,其中,当处于同步/异步计数器模式时,可以通过设置LPOSCEN位来启用辅助时钟源LP或T1CK。
2、PR1为软件设定的16位定时/计数设定值,TMR1为16位累加寄存器。
3、TxIF 位置1 的条件 :a、定时器的计数值与对应的周期寄存器相符,而且该定时 器模块不工作在门控时间累加模式。b、当定时器工作在门控时间累加模式下时,检测到“门控”信号的下降沿。
4、门控时间累加模式允许内部定时器寄存器根据加在 TxCK 引脚上的高电平时间进行递增计数。在门控时间累加模式下,定时器时钟源来自内部系统时钟。
5、设指令周期为Tcy, 预分频系数为 N,周期寄存器 PRx 所赋值为 X,则定时时间为: T定时=Tcy*N*(X+1),假定Tcy位最高频率40MIPS,N=256,X最大65535,则T=1/40M*256*65536=419ms
三、B/C类定时器作为16位定时器的配置
B/C类定时器作为16位定时器与A类太大差异不在赘述。
四、B/C类定时器作为32位定时器的配置
暂不讨论,有机会补充(坑1)