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.

[参考译文] MSP430FR4133:难以将 PWM 信号驱动至 SG90电机

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1186149/msp430fr4133-difficulty-driving-pwm-signal-to-sg90-motor

器件型号:MSP430FR4133
主题中讨论的其他器件: MSP430G2553

大家好、我正在尝试使用 PWM 周期 为20ms、占空比为0.35ms 和2.35ms 的 TA0计时器通过 P1.7驱动 SG90电机。 我只想让电机在0-180度的距离之间持续转动。 我在 YouTube 上遵循了这个基本指南: https://youtu.be/V3v5ItyMKVc 并 相应地从 msp430g2553转换为 msp430fr4133。 我还将 SG90直接连接到了+5V 引脚和 GND 引脚、并将 PWM 信号连接到了板上的 P1.7引脚。  

附件是我的代码:  

--------------------------------------------------------------------

#include
#include

无符号 int TimerA0_PERIOD = 20000;// PWM 周期

void main (void)

WDTCTL = WDTPW | WDTHOLD;//停止看门狗计时器

//配置计时器 A0 (比较模式)和 LED
// TA0CTL = TACLR;//清除计时器
// TA0R = 0;// Timer_A 的计数
P1DIR |= BIT7;
P1SEL0 |= BIT7;

while (1)

TA0CCR0 = TimerA0_PERIOD;
TA0CCR1 = 350;// CCR1 PWM 占空比!min 350 max 2600 angle 190、350 2350-180度
TA0CCTL1 |= OUTMOD_7;//复位/设置输出模式
TA0CTL |= tassel_2 | MC_1;// SMCLK (1MHz)、向上计数模式(向上计数到 TA1CCR0)

_DELAY_CYCLES (1500000);

TA0CCR1 = 2350;// CCR1 PWM 占空比!min 350 max 2600 angle 190、350 2350-180度
TA0CCTL1 |= OUTMOD_7;//复位/设置输出模式
TA0CTL |= TASSEL_2 | MC_1;

_DELAY_CYCLES (1500000);

//_ bis_SR_register (LPM0_bits);//切换到低功耗模式0。

--------------------------------------------------------------------

我认为我的代码和 YouTube 的主要区别在于、我缺少1MHz 的 BCSCTL1/DCOCTL 校准设置、但是 对于 fr4133、系列指南中没有显示任何内容。

在测试期间、每当我运行代码、我在 P1.7上连接了一个仪表、电压"看起来"上升、然后变为零、然后上升、因此 SG90保持静止状态时、似乎什么都不起作用。  

我们非常感谢您的任何帮助。 谢谢!