您好,我尝试理解定时器库中的代码。 我需要设置频率和占空比,但代码中没有解释/注释。有人能告诉我需要在哪里更改数字,以便我可以输入所需的频率和占空比吗? 另外,我需要在哪里将LED引脚设置为我的输出? 例如,我用WFP 1.0 来表示红色LED。 我尝试在网上查找一些示例,但关于msp432的信息太少。在这种情况下,没有LED亮起。我可以在哪里设置类似P1DIR = 0x00的内容? 用于WFP 1.0。 我想看到LED亮起
#include <ti/devices/msp432p4xx/driverlib/driverlib.h>
/*标准包括*/
#include <stdint.h>
#include <stdbool.h>
//![简单定时器A配置]
/* Timer_A PWM配置参数*/
Timer_a_PWMConfig pwmConfig =
{
Timer_A_CLOCKSOURCE_SMCLK,
Timer_a_CLOCKSOURCE_diver_1,
3.2万,
Timer_a_CAPTURECOMPare_register_1,
Timer_a_OUTPUTMODE_RESET_SET,
3200
};
//![简单定时器A配置]
内部主(无效)
{
/*停止监视程序*/
MAP_WDT_A_HoldTimer();
//![简单定时器A示例]
/*将MCLK设置为REFO,低频模式为128Khz
*将SMCLK设置为64Khz */
MAP_CS_setReference振 荡器频率(CS_REFO_128KHZ);
MAP_CS_initClockSignal (CS_MCLK,CS_REFOLCLK_SELECT,CS_CLock_diver_1);
MAP_CS_initClockSignal (CS_SMCLK,CS_REFOLCLK_SELECT,CS_CLock_diver_2);
MAP_PCM_setPowerState(PCM_AM_LH_VCORE0);
/*将2.4 的外围输出配置为PWM ,将WFP的6.7 配置为按钮
*中断*/
MAP_GPIO_setAsPeripheralModuleFunctionOutputPin (GPIO端口P2,GPIO_PIN4,
GPIO主要模块功能);
MAP_GPIO_setAsInputPinWithPullUp阻 器(GPIO_PORT_P1, GPIO_PIN1);
MAP_GPIO清除InterruptFlag (GPIO端口P1,GPIO PIN1);
MAP_GPIO_enableInterrupt (GPIO端口_P1,GPIO _PIN1);
/*将Timer_A配置为具有大约500ms和的周期
* 10 % 的初始占空比(3200 tick) *
MAP_Timer_a_generatePWM (TIMER_A0_BASE,&pwmConfig);
//![简单定时器A示例]
/*启用中断并启动监视程序计时器*/
MAP_Interrupt_enableInterrupt (INT_Port1);
MAP_Interrupt_enableSleepOnIsrExit();
MAP_Interrupt_enableMaster();
/*不使用时休眠*/
同时(1)
{
MAP_PCM_GotoLPM0();
}
}
/*端口1 ISR -此ISR将逐步增加PWM的占空比
*按下按钮
*/
void Port1_IRQHandler(void)
{
UINT32_t状态= MAP_GPIO _getEnabledInterruptStatus (GPIO端口P1);
MAP_GPIO清除InterruptFlag (GPIO端口P1,状态);
IF (状态和GPIO _PIN1)
{
IF (pwmConfig.dutyCycle == 2.88万)
pwmConfig.dutyCycle = 3200;
否则
pwmConfig.dutyCycle +=3200;
MAP_Timer_a_generatePWM (TIMER_A0_BASE,&pwmConfig);
}
}