全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > 接口/总线/驱动 >

怎么利用单片机的一个定时器生成多路PWM波形?

时间:2023-07-22 16:57

人气:

作者:admin

标签: 单片机  一个  怎么    利用 

导读:怎么利用单片机的一个定时器生成多路PWM波形?-在很多工程应用中,需要使用到PWM波(脉宽调制),例如电机调速、温度控制调整功率等。...

在很多工程应用中,需要使用到PWM波(脉宽调制),例如电机调速、温度控制调整功率等。本文讲述怎么利用单片机的一个定时器生成多路PWM波形。

一般的,PWM的周期t1是一个固定值,如1ms,10ms,100ms等,在一个周期中包含了高电平t2和低电平t3,它们的关系是t2+t3=t1。改变一个周期中高电平的时间,就能达到速度或者功率调整的目的。PWM适用于高速开关器件的控制,不适合于继电器等低速开关元件的控制,因为继电器等低速元件达不到如此快的开关速度。

PWM控制的关键是控制改变PWM的高电平时间t2,这个时间在其他子程序中由控制算法中进行修改,如PID控制算法。

图片

微处理器,如单片机中,实现一个定时器生成多路PWM的方法如下。

首先来看看用一个定时器实现一路PWM输出的方法:

定义一个时间基准刻度t,这个也是计时器中断周期,一般在程序中t不改变。PWM的周期、高低电平时间由若干个基准时间t组成;

定义一个全局计时变量n,n表示这段时间经过了多少个基准时间t;

定义一个全局计时变量n1,n1表示一个PWM的周期包含多少个基准时间t,n1=t1/t。一般在程序中n1,t1不改变。

定义一个全局计时变量n2,n2表示一个PWM周期中高电平包含多少个基准时间t,n2=t2/t。由于高电平的时间受其他算法控制改变的,n2也是随时在改变。

程序的流程如下:

①初始化定时器,定时器中断时间设置为t,如设置t为1ms或其他;

②初始化变量:n=0;//计时变量n清零

n1=t1/t;//一个PWM的周期t1包含了多少个基准时间t.

//假如设PWM周期为100ms,则n1=100;

n2=t2/t;//计算一个PWM中高电平时间t2由多少个基准时间//t组成。t2由其他控制算法改变。

③ 开始计时,打开定时器中断。定时器中断程序中n++;

当n

当n>=n2&& n

当n>n1时,返回步骤①进行下一个周期的PWM.

程序流程图如下:

图片

如果在同一个定时器中需要多路PWM,再定义多组类似的变量,按照图2 中流程处理即可。

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信