QQ624353765 发表于 2025-10-8 17:06:02

定时器2与PWMB定时器如何设置成相同的频率


定时器分频255,想让PWMB定时器的频率与定时器2频率一致,如何计算PWMB_PSCR的分频数
(TM2PS+1)*12T-1使用这个公式计算出的分频数在相同时间内跑出来的T2H,T2L和PWMB_CNTR值相差十倍多



我是想让这两个地方的频率一致,这样在相同的时间内T2H,T2L的值和PWMB_CNTR一样

国芯人工智能 发表于 2025-10-8 17:08:00

根据您的描述,您希望将定时器2(Timer 2)与PWMB定时器的频率设置为一致,以便在相同时间内,T2H、T2L和PWMBCNTR的计数值保持一致。当前您使用了公式 (TM2PS + 1) × 12T - 1 来计算分频数,并发现两者计数值相差十余倍,说明两者之间的时钟源或分频机制存在差异。

以下为详细分析与配置建议:

一、定时器2与PWMB定时器时钟源分析

1. 定时器2的时钟源与分频
通常,定时器2的时钟源为系统主频(Fsys)经过分频器(TM2PS)分频后得到:

FTimer2 = Fsys / (TM2PS + 1)

其中:
TM2PS 为定时器2的预分频寄存器值;
Fsys 为系统主频(例如 24MHz、48MHz 等)。

2. PWMB定时器的时钟源与分频
PWMB 定时器的时钟源通常也为系统主频,但其分频由寄存器 PWMBPSCR 控制,其公式为:

FPWMB = Fsys / (PWMBPSCR + 1)

其中:
PWMBPSCR 为PWMB的预分频寄存器值。

二、目标:使两个定时器频率一致

要使两个定时器频率一致,即:

FTimer2 = FPWMB

代入公式得:

Fsys / (TM2PS + 1) = Fsys / (PWMBPSCR + 1)

可得:

TM2PS + 1 = PWMBPSCR + 1
=> TM2PS = PWMBPSCR

也就是说,只要将 PWMBPSCR 设置为与 TM2PS 相同的值,即可实现两个定时器的频率一致。

三、实际差异分析

您提到使用公式 (TM2PS + 1) × 12T - 1 计算出的值,导致T2H/T2L与PWMBCNTR相差十余倍,这说明:

1. 可能使用了错误的时钟源:某些MCU中,定时器2可能使用的是外部时钟或不同的时钟源(如晶振/12),而PWMB使用的是系统时钟;
2. 分频机制不同:部分芯片中,定时器2的分频是基于系统时钟除以 (TM2PS + 1),而PWMB可能使用的是 (PWMBPSCR + 1) 的倍数或其他机制;
3. 定时器工作模式不同:例如定时器2为16位自动重载,而PWMB为8位或自由运行模式,导致计数周期不同。

四、解决建议

1. 核对时钟源配置
请检查以下寄存器或系统配置:
定时器2的时钟源是否为系统主频(Fsys);
PWMB定时器是否使用相同的时钟源;
是否存在额外的分频器(如系统时钟分频为Fsys/12);

2. 正确设置分频寄存器
若确认两者时钟源一致,则应设置:

PWMBPSCR = TM2PS

例如:
TM2PS = 255 → PWMBPSCR = 255

3. 校验计数器值
在相同时间周期内,比较两个定时器的计数值:
若T2H/T2L与PWMBCNTR相差10倍,则说明实际频率相差10倍;
此时应重新检查时钟源或分频配置,确认是否存在额外的分频因子(如Fsys/12)。

4. 考虑系统时钟分频影响
若系统时钟为Fsys,而定时器2使用的是Fsys/12(如标准8051架构),则其频率为:

FTimer2 = Fsys / 12 / (TM2PS + 1)

而若PWMB使用的是Fsys,则其频率为:

FPWMB = Fsys / (PWMBPSCR + 1)

此时,若要频率一致,需满足:

Fsys / 12 / (TM2PS + 1) = Fsys / (PWMBPSCR + 1)
=> (PWMBPSCR + 1) = 12 × (TM2PS + 1)

因此,PWMBPSCR应设置为:

PWMBPSCR = 12 × (TM2PS + 1) - 1

例如:
TM2PS = 255 → PWMBPSCR = 12 × 256 - 1 = 3071

五、结论

要实现定时器2与PWMB定时器频率一致,请按以下步骤操作:

1. 确认两者时钟源是否一致;
2. 根据时钟源和分频机制,选择正确的公式进行配置;
3. 若定时器2使用Fsys/12,PWMB使用Fsys,则PWMBPSCR应为:

PWMBPSCR = 12 × (TM2PS + 1) - 1

4. 验证计数器值是否一致,若仍存在差异,请检查是否配置了其他分频器或时钟源选择错误。

如需进一步帮助,请提供芯片型号、系统主频、定时器2和PWMB的寄存器配置截图或说明,以便更精确分析。

[本文内容由国芯人工智能辅助生成,仅供参考]

QQ624353765 发表于 2025-10-8 17:34:39

国芯人工智能 发表于 2025-10-8 17:08
根据您的描述,您希望将定时器2(Timer 2)与PWMB定时器的频率设置为一致,以便在相同时间内,T2H、T2L和PW ...

回答的跟没回答一样
页: [1]
查看完整版本: 定时器2与PWMB定时器如何设置成相同的频率