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.

[参考译文] CCS/MSP430FR5857:定时器 PWM 在停止时应在引脚上提供高电平。

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/694489/ccs-msp430fr5857-timer-pwm-when-stopped-should-give-high-on-pin

器件型号:MSP430FR5857

工具/软件:Code Composer Studio

#include 
#include 

int main (void)
{


WDTCTL = WDTPW | WDTHOLD; //停止 WDT

//配置 GPIO
P1DIR |= BIT0 | BIT1; // P1.0和 P1.1输出
P1SEL0 |= BIT0 | BIT1; // P1.0和 P1.1选项选择
P1SEL1 &=~(BIT0 | BIT1);
PJSEL0 |= BIT4 | BIT5;

//禁用 GPIO 上电默认高阻抗模式以激活
//先前配置的端口设置
PM5CTL0 &=~LOCKLPM5;

/*超过8MHz 的操作_Befor_配置时钟系统。*/
FRCTL0 = FRCTLPW | NWAITS_1;

/*时钟系统设置*/
CSCTL0_H = CSKEY >> 8; /*解锁 CS 寄存器*/
CSCTL1 = DCORSEL | DCOFSEL_4; /*将 DCO 设置为16MHz*/
CSCTL2 = SELA_LFXTCLK | SELESS__DCOCLK | SELM_DCOCLK;//设置 ACLK = XT1;MCLK = DCO
CSCTL3 = DIVA__1 | DIVM_1 | DIVM__1;//设置所有分频器
CSCTL4 &=~LFXTOFF;
操作
{
CSCTL5 &=~LFXTOFFG; //清除 XT1故障标志
SFRIFG1 &=~OFIFG;
} while (SFRIFG1和 OFIFG); //测试振荡器故障标志
CSCTL0_H = 0; //锁定 CS 寄存器

//配置 Timer0_A
TA0CTL |=TACLR;
TA0CCR0 = 16000-1; // PWM 周期
TA0CCTL1 = OUTMOD_1|CLLD_1; // CCR1复位/置位
TA0CCR1 = 8000; // CCR1 PWM 占空比
TA0CTL = tassel_SMCLK | MC__UP;// ACLK、向上计数模式、清除 TAR

_bis_SR_register (LPM3_bits); //进入 LPM3
__no_operation(); //对于调试器
}

这是我想编写的下一个代码的基础代码。

我想知道的是、当我通过写入来停止计时器 A0时

TA0CTL|= MC_STOP;

TA0.1上的输出是高电平还是低电平、还是取决于 PWM 打开的电平。

我想编写代码、以便在 TimerA0停止时使其保持高电平。

提前感谢您。

Viswanath。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Viswanath,
    TA0.1的输出为高电平或低电平、或者取决于 PWM 的开启水平。
    您可以在 CCR1中检查计数编号。 如果它低于8000、那么您可以停止计时器。

    此致、
    现金 Hao