🙌秋名山码民的主页
😂oi退役选手,Java、大数据、单片机、IoT均有所涉猎,热爱技术,技术无罪
🎉欢迎关注🔎点赞👍收藏⭐️留言📝
获取源码,添加WX
🚀🚀开启攻城狮的成长之旅!这是我参与的由 CSDN博客专家 架构师李肯和 瑞萨MCU 联合发起的「 致敬未来的攻城狮计划 」的第 2 篇,点击查看活动计划详情
👍首先作为一个穷学生来说,很感谢有这次的机会能带我领略除C51和STM32板子以外开发板的机会,让我在空闲的时间内不仅能吸取很多知识,更能听取李老师作为企业级架构师的手把手敲代码的教学。
脉冲宽度调制(PWM),是英文“Pulse Width Modulation”的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。
PWM 波形的基本信息如下图所示:
PWM常用信息:
- pwm的频率:
是指1秒钟内信号从高电平到低电平再回到高电平的次数(一个周期);
也就是说一秒钟PWM有多少个周期
单位: Hz
表示方式: 50Hz 100Hz
- pwm的周期:
T=1/f
周期=1/频率
50Hz = 20ms 一个周期
如果频率为50Hz ,也就是说一个周期是20ms 那么一秒钟就有 50次PWM周期
- 占空比:
是一个脉冲周期内,高电平的时间与整个周期时间的比例
单位: % (0%-100%)
表示方式:20%
// 定义引脚
sbit PWM_OUT = P1^4;
void pwm_init(){// Timer2 配置T2CR = 0x08; // 16位自动重载模式// 重载值 = 定时周期 / 时钟周期T2DRH = 0x1F; // 定时周期高8位T2DRL = 0x40; // 定时周期低8位// PWM模式:重载值为占空比T2MR |= 0x0080; // TD2.7设置为1T2MR &= ~0x0040; // TD2.6设置为0
}
void pwm_init(){// ...// Timer2 比较器配置TCRCR2 = 0x00; // 无需输入捕获// 输出模式:PWMTCDR2 = 0x0F; // 先设为最大值,占空比为0// 初次比较时间设为0TCMP2H = 0x00; TCMP2L = 0x00;// 触发比较事件TCRCR2 |= 0x02; // TD2CE2 设置为1
}
void main(){// 初始化pwm_init();PWM_OUT = 0;// 动态调整占空比while(1){for(unsigned char i = 1; i <= 15; ++i){TCMP2H = 0x00;TCMP2L = i << 8;// 延迟一段时间,保证PWM波形输出稳定delay(1000);}}
}
如果本文对你有所帮助,还请三连支持一下博主!
本文发布于:2024-02-02 19:22:44,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170687296445909.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |