工具与软件:
您好、我尝试在计时器0通道0上使 PWM 为1kHz。周期根据我在25MHz 的时钟固定为25165。 我能够以50%的占空比生成500Hz 的固定 PWM。初始化代码如下所示。
无法更改计时器周期、因为它正在用于其他外设
计时器初始化:-
.
TA0CCR0 = 25165; // CCR0 for PWM Period TA0CCTL2 = OUTMOD_7; // CCR2 reset/set TA0CCTL0 |= CCIE; // To generate interrupt on CCR0 TA0CTL = TASSEL_2 | MC_1 | TACLR; // SMCLK, up mode - Up to CCR0, clear TAR
以下给定代码用于生成500Hz 50%占空比的 PWM。
TA0CCTL0 = OUTMOD_4;
更改模式可为我提供0%、1%、99%和100%的占空比。
但无法生成占空比为50%的1kHz 信号。
方法2:
使用计时器在2kHz 生成中断并在中断时切换 GPIO、但这会带来占空比和频率变化、因为我正在使用 EMDC 库并生成 Σ-Δ 中断、这可能会产生中断延迟。