按照数据手册,CH582M有四个26位的定时器,TMR0、TMR1、TMR2 和 TMR3,最长定时时间为 2^26 个时钟周期。定时器可以用来做定时处理、测试外部脉冲频率、测量信号脉冲长度(输入捕捉)、输出PWM。TMR1和TMR2还支持DMA功能。这四个定时器是完全独立的,也可以同步操作。
在功能上,TMR0和TMR3相似,TMR1和TMR2相似。本贴为学习TMR0的帖子。与TMR0有关的寄存器有:

各寄存器的说明如下:
1、模式设置寄存器(R8_TMRx_CTRL_MOD) (x=0/1/2/3)

2、中断使能寄存器(R8_TMRx_INTER_EN) (x=0/1/2/3)
3、中断标志寄存器(R8_TMRx_INT_FLAG) (x=0/1/2/3)
4、FIFO 计数寄存器(R8_TMRx_FIFO_COUNT) (x=0/1/2/3)
5、当前计数值寄存器(R32_TMRx_COUNT) (x=0/1/2/3)
6、计数终值设置寄存器(R32_TMRx_CNT_END) (x=0/1/2/3)
7、FIFO 寄存器(R32_TMRx_FIFO) (x=0/1/2/3)
定时器的定时功能和计数功能是有关联性,当计数脉冲是来自系统的工作时钟时,计数值乘以时钟周期,就是定时数据。CH582M的计数是增量式计数。对26位的定时器,其定时周期最长为2^26 * Tsys,若定时器的工作频率为32MHz。则这个最长定时周期为 1/32 * 10^-6 * 2^26 = 2.097152秒。
我要赚赏金
