1.9. mcpwm
mcpwm模块支持两路同时输出pwm,共6组,支持故障保护功能,支持复用。
1.9.1. mcpwm_init
mcpwm功能初始化。
原型:
int mcpwm_init(struct mcpwm_config *mcpwm_cfg);
参数:
mcpwm_cfg
mcpwm配置
返回值
mcpwm配置句柄(id号)
1.9.2. mcpwm_deinit
mcpwm功能初始化取消。
原型:
void mcpwm_deinit(int mcpwm_cfg_id);
参数:
rdec_cfg_id
init时返回的句柄(id号)
返回值
无
1.9.3. mcpwm_start
mcpwm功能启动。
原型:
void mcpwm_start(int mcpwm_cfg_id);
参数:
rdec_cfg_id
init时返回的句柄(id号)
返回值
无
1.9.4. mcpwm_pause
mcpwm功能暂停。
原型:
void mcpwm_pause(int mcpwm_cfg_id);
参数:
rdec_cfg_id
init时返回的句柄(id号)
返回值
无
1.9.5. mcpwm_resume
mcpwm功能恢复。
原型:
void mcpwm_resume(int mcpwm_cfg_id);
参数:
rdec_cfg_id
init时返回的句柄(id号)
返回值
无
1.9.6. mcpwm_set_frequencys
设置mcpwm输出频率,单位Hz。
原型:
void mcpwm_set_frequency(int mcpwm_cfg_id, mcpwm_aligned_mode_type align, u32 frequency);
参数:
rdec_cfg_id
init时返回的句柄(id号)
align
对齐方式:中心对齐、边沿对齐
frequency
频率,单位:Hz
返回值
无
1.9.7. mcpwm_set_duty
设置mcpwm输出占空比。
原型:
void mcpwm_set_duty(int mcpwm_cfg_id, u16 duty);
- 参数:
rdec_cfg_id
init时返回的句柄(id号)
duty
占空比,如:5123,51.23%
返回值
无
1.9.8. mcpwm参考demo
struct mcpwm_config usr_mcpwm_cfg;
usr_mcpwm_cfg.ch = MCPWM_CH0; //通道号
usr_mcpwm_cfg.aligned_mode = MCPWM_EDGE_ALIGNED; //边沿对齐
usr_mcpwm_cfg.frequency = 1000; //1KHz
usr_mcpwm_cfg.duty = 5000; //占空比50%
usr_mcpwm_cfg.h_pin = IO_PORTC_00; //任意引脚输出,不需要就填-1
usr_mcpwm_cfg.l_pin = IO_PORTC_01; //任意引脚输出,不需要就填-1
usr_mcpwm_cfg.complementary_en = 0; //两个引脚的波形, 0: 同步, 1: 互补,互补波形的占空比体现在H引脚上
usr_mcpwm_cfg.detect_port = MCPWM_FPIN_NONE; //选择一个通道作故障保护功能,不需要就填 MCPWM_FPIN_NONE
usr_mcpwm_cfg.edge = MCPWM_EDGE_FAILL; //检测方式,下升沿触发
usr_mcpwm_cfg.irq_cb = usr_mcpwm_detect_test_func; //故障保护回调函数
usr_mcpwm_cfg.irq_priority = 1; //优先级默认为1
int ch0_id = mcpwm_init(&usr_mcpwm_cfg);
mcpwm_start(ch0_id);