这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » 国产MCU » STC32G系列单片机的定时器0模式0(16位自动重装载模式)

共2条 1/1 1 跳转至

STC32G系列单片机的定时器0模式0(16位自动重装载模式)

专家
2024-11-18 09:30:37     打赏

此模式下定时器/计数器 0 作为可自动重装载的 16 位计数器,如下图所示:

1.png

当 GATE=0(TMOD.3)时,如 TR0=1,则定时器计数。GATE=1 时,允许由外部输入 INT0 控制定时器0,这样可实现脉宽测量。TR0 为 TCON 寄存器内的控制位,TCON 寄存器各位的具体功能描述见上节 TCON寄存器的介绍。

当 C/T=0 时,多路开关连接到系统时钟的分频输出,T0 对内部系统时钟计数,T0 工作在定时方式。当C/T=1 时,多路开关连接到外部脉冲输入 P3.4/T0,即 T0 工作在计数方式。

STC 单片机的定时器 0 有两种计数速率:一种是 12T 模式,每 12 个时钟加 1,与传统 8051 单片机相同;另外一种是 1T 模式,每个时钟加 1,速度是传统 8051 单片机的 12 倍。T0 的速率由特殊功能寄存器 AUXR中的 T0x12 决定,如果 T0x12=0,T0 则工作在 12T 模式;如果 T0x12=1,T0 则工作在 1T 模式。

定时器 0 有两个隐藏的寄存器 RL_TH0 和 RL_TL0。RL_TH0 与 TH0 共有同一个地址,RL_TL0 与 TL0共有同一个地址。当 TR0=0 即定时器/计数器 0 被禁止工作时,对 TL0 写入的内容会同时写入 RL_TL0,对TH0 写入的内容也会同时写入 RL_TH0。当 TR0=1 即定时器/计数器 0 被允许工作时,对 TL0 写入内容,实际上不是写入当前寄存器 TL0 中,而是写入隐藏的寄存器 RL_TL0 中,对 TH0 写入内容,实际上也不是写入当前寄存器 TH0 中,而是写入隐藏的寄存器 RL_TH0,这样可以巧妙地实现 16 位重装载定时器。当读 TH0和 TL0 的内容时,所读的内容就是 TH0 和 TL0 的内容,而不是 RL_TH0 和 RL_TL0 的内容。

当定时器 0 工作在模式 0(TMOD[1:0]/[M1,M0]=00B)时,[TH0,TL0]的溢出不仅置位 TF0,而且会自动将[RL_TH0,RL_TL0]的内容重新装入[TH0,TL0]。

当 T0CLKO/INT_CLKO.0=1 时,P3.5/T1 管脚配置为定时器 0 的时钟输出 T0CLKO。输出时钟频率为 T0溢出率/2。

如果 C/T=0,定时器/计数器 T0 对内部系统时钟计数,则:

                1、T0 工作在 1T 模式(AUXR.7/T0x12=1)时

                        输出时钟频率 = (SYSclk)/(TM0PS+1)/(65536-[RL_TH0, RL_TL0])/2

                2、T0 工作在 12T 模式(AUXR.7/T0x12=0)时

                        输出时钟频率 = (SYSclk)/(TM0PS+1)/12/(65536-[RL_TH0, RL_TL0])/2

如果 C/T=1,定时器/计数器 T0 是对外部脉冲输入(P3.4/T0)计数,则:

                        输出时钟频率 = (T0_Pin_CLK) / (65536-[RL_TH0, RL_TL0])/2





关键词: 菜鸟学单片机    

专家
2024-11-18 09:37:28     打赏
2楼

谢谢分享


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]