This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] MSP430F6779A:TA0_0上的 PWM 问题

Guru**** 1831610 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1407748/msp430f6779a-pwm-issue-on-ta0_0

器件型号:MSP430F6779A

工具与软件:

您好、我尝试在计时器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 库并生成 Σ-Δ 中断、这可能会产生中断延迟。