2024.07.15
一基础功能:利用timer-pwm,在示波器观测PA12和PA13会输出不同占空比的矩形波。
二进阶功能:在一的基础上,当按键按下时,占空比发生变化。
PWM配置:通常都默认使用BUSCLK,本实验PWM频率为1000Hz,可通过分频以及改变Count得到想要的频率。由于不用特别高的精度,所以Mode也采用默认设置即可。
设置占空比
本人在调试时遇到按下按键后占空比不发生改变的情况,经过反复检查代码和配置,发现犯了一个很低级的错误,不过鉴于本人目前是一枚努力入门的小菜鸟,所以任何自己排查出来的错误都是有意义滴!
错把Direction设置成了output,记得要改成input才能检测到按键是否按下!
#include "ti/driverlib/dl_timerg.h"
#include "ti_msp_dl_config.h"
uint32_t val;
int main(void)
{
SYSCFG_DL_init();
DL_TimerG_startCounter(PWM_0_INST);
while (1)
{
val = DL_GPIO_readPins(GPIO_BUTTON_PORT, GPIO_BUTTON_PIN_S2_PIN );
if(val)
{
DL_TimerG_setCaptureCompareValue(PWM_0_INST, 22400, DL_TIMER_CC_0_INDEX);
DL_TimerG_setCaptureCompareValue(PWM_0_INST, 9599, DL_TIMER_CC_1_INDEX);
}
else
{
DL_TimerG_setCaptureCompareValue(PWM_0_INST, 9599, DL_TIMER_CC_0_INDEX);
DL_TimerG_setCaptureCompareValue(PWM_0_INST,22400 , DL_TIMER_CC_1_INDEX);
}
}
}
此外,通过设置val观测引脚电平变化。
由于是PB21,则从右往左数,第21位为高电平。(按键按下为低电平,未按时为高电平)
好咯,明天继续加油!