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/MSP430FR6989:在计时器 B 中配置 PWM

Guru**** 2826755 points

Other Parts Discussed in Thread: MSP430FR6989

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/875255/ccs-msp430fr6989-configuring-a-pwm-in-timer-b

器件型号:MSP430FR6989

工具/软件:Code Composer Studio

大家好。

我尝试在 MSP430FR6989中配置 PWM 信号。 我是这个 UC 的新编程、因此我不知道我是否正确。 我使用芯片的引脚12来生成 PWM 的输出信号、这对应于 TimerB0.1。 需要注意的是、我尝试按照手册的指南配置 PWM、但我测量该引脚、并且我没有获得 PWM 信号。 我选择了用于生成 PWM_Duty 值的随机值。 如果有人知道我的代码有什么问题、请提供帮助!

//使用的库

#include 
#include 
#include 

//变量
float PWM_Duty = 0;

//计时器到 PWM 信号
void timer_B0_Init ()
{
TB0CCTL3 &=~(CCIE);//中断被禁用以配置 PWM

TB0CCR0 = 100; // PWM 周期

TB0CTL = TBSSEL_SMCLK | MC__UP | TBCLR;// SMCLK、向上计数模式、清除 TBR
TB0CCTL3 = OUTMOD_7; // CCR3复位/置位

TB0CCTL3 |= CCIE;//配置完成,中断启用

}

// PWM
void ControlPWMDuty()的配置
{
float D1= 50;
float D2= 70;
PWM_Duty =(D1+D2)/2;
TB0CCR3 = PWM_DUTY; // CCR3 PWM 占空比
}

//引脚的初始配置
void set_up_gpio()
{
///PWM 引脚作为输出
P6DIR |= BIT5;
//将引脚设置为低电平
P6OUT &=~(BIT4);
}

//设置 ADC、PWM 和电机驱动
器的引脚 void InitGPIO ()
{
//对于计时器 B,它必须为01
P6SEL0 |= BIT5;
P6SEL1 &=~(BIT4);
}

int main (void)
{
WDTCTL = WDTPW | WDTHOLD;//停止看门狗计时器
SET_UP_GPIO();
InitGPIO();
PM5CTL0 &=~LOCKLPM5;//禁用 GPIO 上电默认高阻抗模式以激活先前配置的端口设置
Timer_B0_Init();
_bis_SR_register (GIE);//允许常规中断

while (1)
{
ControlPWMDuty();
__DELAY_CYCLES (4000000);
}
}

#if defined (__TI_Compiler_version__)|| defined (__IAR_systems_ICC__)
#pragma vector = Timer1_B0_vector
__interrupt void Timer1_B0_ISR (void)
#elif defined (__GNU__)
void __attribute__(interrupt (interrupt (Timer1_b0_ISR)#vector #b0_ISR

(void)#b0_b0_b0)!错误!
#endif
{

TB0CTL|= TBCLR; //清除计时器 B0

}

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

    您好!

    我们建议从我们的代码示例开始。 您可以在器件主页上以 zip 文件的形式找到它们、该文件可供下载、也可以在 Code Composer Studio 中找到、后者可免费下载。 在 CCS 中、您可以找到包含相同代码示例的 TI Resource Explorer、同样适用于所有可用的 MSP430衍生产品。

    您还可以找到基于计时器的 PWM 生成的多个代码示例。 请查看其中一项。

    此致

    Peter

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

    1) P6.5为 TB0.1、而不是 TB0.3 [参考数据表(SLAS789C) 表6-31]。 您可以通过 TB0CCR1/TB0CCTL1来使用它。

    2) 2)如果您使用 TB0CCTL1:CCIE、则需要 vector=TIMER0_B1_vector。 确保在 ISR 中明确清零 TB0CCTL1:CCIFG。

    3) 3)我建议不要在 ISR 中使用 TBCLR。 在适当的时候、向上计数模式将清零计数器、并且明确地执行它将干扰输出信号。

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

    您好!

    请向我们提供状态更新吗? 您是否仍然需要有关此问题的帮助?

    此致

    Peter