当前位置:   article > 正文

CCS配置MSPM0G3507(三) PWM_sysconfig单独控制pwm播占空比的函数

sysconfig单独控制pwm播占空比的函数

一.syscfg配置

(1)Clock Config

1.PWM Profiles 配置为 Custom(自定义)

2. 时钟源选择BUSCLK

3.定时器时钟分频 Timer Clock Driver 选择为一分频

4.时钟分频系数设为256

5.软件将会自动计算出可调节的频率范围

6.设置定时器的计数值,会影响最后的PWM频率

7.若勾选 Start Timer 则生成代码后,定时器会自动开启计数。否则要在代码中手动设置。

(2).PWM Config

1.PWM Mode 设置为 Edge-aligned Down Counting  。这个仅决定PWM波形的相位。

2.选择使能通道

3.设置某个PWM通道的参数

PWM Mode可选择计数器的计数方式(向上计数、向下计数、中心计数)

选择向上计数时,占空比 = CCR/(Period + 1)

(3).Pin Config

默认设置为了输出模式,速度为高速。

(4).Pin Mux

1.选择使用哪个定时器

2.选择输出PWM的引脚(引脚复用)

二.代码

0.生成代码后,会在ti_msp_dl_config.c中初始化PWM相关

SYSCFG_DL_init();
  1. SYSCONFIG_WEAK void SYSCFG_DL_init(void)
  2. {
  3. SYSCFG_DL_initPower();
  4. SYSCFG_DL_GPIO_init();
  5. /* Module-Specific Initializations*/
  6. SYSCFG_DL_SYSCTL_init();
  7. SYSCFG_DL_PWM_0_init(); //初始化PWM相关
  8. }
  1. SYSCONFIG_WEAK void SYSCFG_DL_PWM_0_init(void) {
  2. ...
  3. DL_TimerG_setCaptCompUpdateMethod(PWM_0_INST, DL_TIMER_CC_UPDATE_METHOD_IMMEDIATE, DL_TIMERG_CAPTURE_COMPARE_0_INDEX);
  4. DL_TimerG_setCaptureCompareValue(PWM_0_INST, 500, DL_TIMER_CC_0_INDEX); //设置CCR0的值为500
  5. DL_TimerG_setCaptureCompareOutCtl(PWM_0_INST, DL_TIMER_CC_OCTL_INIT_VAL_LOW,
  6. DL_TIMER_CC_OCTL_INV_OUT_DISABLED, DL_TIMER_CC_OCTL_SRC_FUNCVAL,
  7. DL_TIMERG_CAPTURE_COMPARE_1_INDEX);
  8. DL_TimerG_setCaptCompUpdateMethod(PWM_0_INST, DL_TIMER_CC_UPDATE_METHOD_IMMEDIATE, DL_TIMERG_CAPTURE_COMPARE_1_INDEX);
  9. DL_TimerG_setCaptureCompareValue(PWM_0_INST, 1000, DL_TIMER_CC_1_INDEX); //设置CCR1的值
  10. DL_TimerG_enableClock(PWM_0_INST);
  11. DL_TimerG_setCCPDirection(PWM_0_INST , DL_TIMER_CC0_OUTPUT | DL_TIMER_CC1_OUTPUT );
  12. }

1.初始化,若软件没有勾选 Start Timer 则需要在代码中手动开启定时器计数。

  1. int main(void)
  2. {
  3. SYSCFG_DL_init();
  4. DL_TimerG_startCounter(PWM_0_INST);
  5. while (1) {
  6. }
  7. }

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);

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/1012543
推荐阅读
相关标签
  

闽ICP备14008679号