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.

[参考译文] MSP432P401R:MSP432P401R

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/763778/msp432p401r-msp432p401r

器件型号:MSP432P401R

因此、我有用于为电机创建2个 PWM 输出的代码、然后我有用于3个(将是7个) ADC 引脚的代码、这些引脚用于声纳传感器。 我已经为 ADC 设置了用于中断的比较器。 仅当我测试这些时、它们就能正常工作... PWM 可以通过按钮中断进行更改、然后运行电机。 ADC 引脚显示值并相应地通过 ISR 中断以点亮 LED。 现在我尝试将这两者结合起来、我希望 ADC ISR 能够更改 PWM 占空比并输出新值、 但是、当我测试代码时、ADC ISR 对 PWM 完全没有影响、它会更改我可以通过 CCS 界面上的"Expressions"看到的占空比值、 但物理输出不会改变、我想知道我为什么需要做什么。 以下是我的代码:  

/* DriverLib 包括*/
#include 

/*标准包括*/
#include 
#include 

/* for usleep()*//#include

//#include 

/* TI-RTOS 头文件*/
#include 
//#include 

/*电路板头文件*/
//#include "Board.h"

//*静态*/
uint16_t resultsBuffer[3];//缓冲器以保存每个声纳传感器的 ADC 读数

// DLUG 部分:2.6.2.25 |注册 ADC 中断的中断处理程序。 //
void ADC14_registerInterrupt (void (* ADC14_IRQHandler)(void));

void PWMConfigure (void);//设置 PWM
void ADCConfigure (void);//设置 ADC
void InitDCO (void);//更改 DCO
Sonarive (void)的运行频率;
SonarTwo (void);

void (void (void
);void (void);void (void);void (void);void (void (void);void (void)
void SonarSix (void);
void SonarSeven (void);
void 应急停止(void);

volatile uint32_t ii;

/******** 右侧电机的 Timer_A PWM 配置参数*****
*按住命令并单击 Timer_A_PWMConfig 以查看 pwmConfigR 是 typedef 结构_Timer_A_PWMConfig
*S1用于右侧电机*/
Timer_A_PWMConfig pwmConfigR =
{
Timer_A_CLOCKSOURCE_SMCLK、// PWM 运行时钟源
Timer_A_CLOCKSOURCE_DEVIDER_1、//时钟源 SMCLK 的分频器
4800、//周期
Timer_A_CAPTURECOMPARE 寄存器3、
Timer_A_OUTPUTMODE_RESET_SET、
4200//启动时占空比为5[V](2.5[V])的50%、因此电机不会移动。
};

/******** 左侧电机的 Timer_A PWM 配置参数*****
*S2用于左侧电机*/
Timer_A_PWMConfig pwmConfigL =
{
Timer_A_CLOCKSOURCE_SMCLK、
Timer_A_CLOCKSOURCE_divider _1、
4800、
Timer_A_CAPTURECOMPARE 寄存器_4、//使 P2.7正常工作是因为 TA0.4
Timer_A_OUTPUTMODE_RESET_SET、
4200
};

/********* 两个电机的结束定时器_A_PWMConfig
*电机以方向和速度为一个输入。 51-100%占空比是正向速度(5[V]最大值、
*更高占空比是更快的正向速度)、0-49%占空比是反向速度(0[V]最大值、较低占空
比*周期是更快的反向速度)、50%是无运动(2.5[V])。
*
*我们希望使用大约一半的每个方向占空比、因为我们不想快速运行。 每个方向
*具有2400级速度。 每种模式的一半是1、200级速度。 正向可以具有
* 2、401-4、800的占空比、而反向可以具有0 - 2、399的占空比。 我们将使用前向:2、401-3、600和
*后向:1、200 - 2、399 */

********* 启动 main******** /
int main (void)
{
/*停止 WDT */
MAP_WDT_A_HOLDTimer();

PWMConfigure();//设置 PWM
ADCConfigure();//设置 ADC
MAP_Interrupt_enableSlepOnIsrExit();

/*正在休眠*/
while (1)
{
//SonarThree();//当物体在1-2英尺之间时,右侧绿�