赞
踩
1.PWM Profiles 配置为 Custom(自定义)
2. 时钟源选择BUSCLK
3.定时器时钟分频 Timer Clock Driver 选择为一分频
4.时钟分频系数设为256
5.软件将会自动计算出可调节的频率范围
6.设置定时器的计数值,会影响最后的PWM频率
7.若勾选 Start Timer 则生成代码后,定时器会自动开启计数。否则要在代码中手动设置。
1.PWM Mode 设置为 Edge-aligned Down Counting 。这个仅决定PWM波形的相位。
2.选择使能通道
3.设置某个PWM通道的参数
PWM Mode可选择计数器的计数方式(向上计数、向下计数、中心计数)
选择向上计数时,占空比 = CCR/(Period + 1)
默认设置为了输出模式,速度为高速。
1.选择使用哪个定时器
2.选择输出PWM的引脚(引脚复用)
0.生成代码后,会在ti_msp_dl_config.c中初始化PWM相关
SYSCFG_DL_init();
- SYSCONFIG_WEAK void SYSCFG_DL_init(void)
- {
- SYSCFG_DL_initPower();
- SYSCFG_DL_GPIO_init();
- /* Module-Specific Initializations*/
- SYSCFG_DL_SYSCTL_init();
- SYSCFG_DL_PWM_0_init(); //初始化PWM相关
- }
- SYSCONFIG_WEAK void SYSCFG_DL_PWM_0_init(void) {
-
- ...
-
- DL_TimerG_setCaptCompUpdateMethod(PWM_0_INST, DL_TIMER_CC_UPDATE_METHOD_IMMEDIATE, DL_TIMERG_CAPTURE_COMPARE_0_INDEX);
- DL_TimerG_setCaptureCompareValue(PWM_0_INST, 500, DL_TIMER_CC_0_INDEX); //设置CCR0的值为500
-
- DL_TimerG_setCaptureCompareOutCtl(PWM_0_INST, DL_TIMER_CC_OCTL_INIT_VAL_LOW,
- DL_TIMER_CC_OCTL_INV_OUT_DISABLED, DL_TIMER_CC_OCTL_SRC_FUNCVAL,
- DL_TIMERG_CAPTURE_COMPARE_1_INDEX);
-
- DL_TimerG_setCaptCompUpdateMethod(PWM_0_INST, DL_TIMER_CC_UPDATE_METHOD_IMMEDIATE, DL_TIMERG_CAPTURE_COMPARE_1_INDEX);
- DL_TimerG_setCaptureCompareValue(PWM_0_INST, 1000, DL_TIMER_CC_1_INDEX); //设置CCR1的值
-
- DL_TimerG_enableClock(PWM_0_INST);
-
-
-
- DL_TimerG_setCCPDirection(PWM_0_INST , DL_TIMER_CC0_OUTPUT | DL_TIMER_CC1_OUTPUT );
-
-
- }
1.初始化,若软件没有勾选 Start Timer 则需要在代码中手动开启定时器计数。
- int main(void)
- {
- SYSCFG_DL_init();
-
- DL_TimerG_startCounter(PWM_0_INST);
-
- while (1) {
-
- }
- }
2.若要改变PWM的占空比,可以改变CCR的值
例如:已知Period的值为2000,则占空比 = CCR/(Period+1)
=1000/(2000 + 1) = 49.97%
DL_TimerG_setCaptureCompareValue(PWM_0_INST, 1000, DL_TIMER_CC_1_INDEX);
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。