1437|1

25

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

【雅特力AT-START-F435】PWM可调占空比 [复制链接]

 

【雅特力AT-START-F435】PWM可调占空比

一、时钟配置

    所有定时器连接到APB2总线上,在 system_clock_config 函数中对APB2二分频,所以在计算TMR1时钟周期的时候需要x2操作。

    设置PWM的频率为:timerperiod = ((crm_clocks_freq_struct.apb2_freq * 2) / 10000 ) - 1;

    计算TMR1的分频系数,设置为不分频。

    计算PWM占空比:

/* tmr1 configuration ---------------------------------------------------
 generate 7 pwm signals with 4 different duty cycles:
 prescaler = 0, tmr1 counter clock = apb2_freq *2

 the objective is to generate 7 pwm signal at 17.57 khz:
	 - tim1_period = (apb2_freq * 2 / 17570) - 1
 the channel 1 and channel 1n duty cycle is set to 50%
 the channel 2 and channel 2n duty cycle is set to 37.5%
 the channel 3 and channel 3n duty cycle is set to 25%
 the channel 4 duty cycle is set to 12.5%
 the timer pulse is calculated as follows:
	 - channelxpulse = dutycycle * (tim1_period - 1) / 100
----------------------------------------------------------------------- */

 

二、PWM输出配置

    设置为PWMB模式、使能输出、不使能互补输出、极性选择LOW、空闲状态为高电位。

    设置占空比函数为 tmr_channel_value_set(TMR1, TMR_SELECT_CHANNEL_1, channel1pulse);

/* channel 1 configuration in output mode */
tmr_output_default_para_init(&tmr_output_struct);
tmr_output_struct.oc_mode = TMR_OUTPUT_CONTROL_PWM_MODE_B;
tmr_output_struct.oc_output_state = TRUE;
tmr_output_struct.oc_polarity = TMR_OUTPUT_ACTIVE_LOW;
tmr_output_struct.oc_idle_state = TRUE;
tmr_output_struct.occ_output_state = TRUE;
tmr_output_struct.occ_polarity = TMR_OUTPUT_ACTIVE_HIGH;
tmr_output_struct.occ_idle_state = FALSE;
/* channel 1 */
tmr_output_channel_config(TMR1, TMR_SELECT_CHANNEL_1, &tmr_output_struct);
tmr_channel_value_set(TMR1, TMR_SELECT_CHANNEL_1, channel1pulse);

在主函数中,while循环中更改占空比:

PWM周期为100us,每100us增加1%占空比,如下

 

二、PWM信号抓取

抓取的波形如下

 在临界点发生突变的波形如下

 

006-PWM.zip (399.62 KB, 下载次数: 6)

最新回复

呼吸灯的实现基本就是这样的模式,注意频率     详情 回复 发表于 2023-7-1 17:05
点赞 关注
 
 

回复
举报

6471

帖子

9

TA的资源

版主

沙发
 

呼吸灯的实现基本就是这样的模式,注意频率  

个人签名

在爱好的道路上不断前进,在生活的迷雾中播撒光引

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表