找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3209|回复: 9
收起左侧

求助51单片机如何精确PWM脉冲个数

[复制链接]
ID:101869 发表于 2021-5-10 20:07 来自手机 | 显示全部楼层 |阅读模式
50黑币
新手求思路!指定时间内发送PWM脉冲个数精确到个位数。

最佳答案

查看完整内容

一般用两种方法:1.脉宽固定,用改变周期来达到改变占空比的目的。2.周期固定,用改变脉宽来达到改变占空比的目的。只要周期是脉宽的整数倍,在MCU可及的指定时间内发送PWM脉冲个数精确到个位数不是问题。
回复

使用道具 举报

ID:213173 发表于 2021-5-10 20:07 | 显示全部楼层
一般用两种方法:1.脉宽固定,用改变周期来达到改变占空比的目的。2.周期固定,用改变脉宽来达到改变占空比的目的。只要周期是脉宽的整数倍,在MCU可及的指定时间内发送PWM脉冲个数精确到个位数不是问题。
回复

使用道具 举报

ID:824490 发表于 2021-5-11 07:27 | 显示全部楼层
  在代码(IO~)的后边加入代码(Count++),最终这个Count/2,就能计数,除非PWM的占空比是0%或100%。
回复

使用道具 举报

ID:584814 发表于 2021-5-11 08:11 | 显示全部楼层
PWM从哪里来 ?如果自制就在内部加个计数器就,不知道就用定时器做个外部脉冲计数器。
回复

使用道具 举报

ID:101869 发表于 2021-5-11 08:37 来自手机 | 显示全部楼层
名字不是重点 发表于 2021-5-11 07:27
在代码(IO~)的后边加入代码(Count++),最终这个Count/2,就能计数,除非PWM的占空比是0%或100%。

要的效果是时间到脉冲刚好发完
回复

使用道具 举报

ID:824490 发表于 2021-5-11 08:57 | 显示全部楼层
非凡科技 发表于 2021-5-11 08:37
要的效果是时间到脉冲刚好发完

这样啊?多计算一些内容了。。Pwm_Frequency=T/Count/2,但要先知道T和Count,不知这样对不对你的需求?
回复

使用道具 举报

ID:918790 发表于 2021-5-11 09:00 来自手机 | 显示全部楼层
定时器主从模式,用一个定时器做PWM输出,频率可以通过预分频值调整,这个定时器就是主定时器。再选一个定时器做从定时器,用于计数。
回复

使用道具 举报

ID:101869 发表于 2021-5-11 10:18 来自手机 | 显示全部楼层
名字不是重点 发表于 2021-5-11 08:57
这样啊?多计算一些内容了。。Pwm_Frequency=T/Count/2,但要先知道T和Count,不知这样对不对你的需求?

您这个要用PCA模块吗
回复

使用道具 举报

ID:889094 发表于 2021-5-11 11:23 | 显示全部楼层
如果用单片机自带的PCA模块,就仔细研读芯片手册里的例程,别人不知道你用的什么芯片没法具体说怎么设置。
如果是自己控制IO口输出的话就弄个定时器,想怎么控制就怎么控制。

如果定时器控制还整不太明白,建议先多看看手册和例程,练练手,不然别人说了也弄不明白
回复

使用道具 举报

ID:919457 发表于 2021-5-11 16:55 | 显示全部楼层
1、通过指定时间需要发送的PWM个数计算出PWM脉冲的频率  2、程序设置PWM脉冲频率和周期  3、开定时器 定时指定的时间开始发送脉冲  4、定时器到指定的时间 关闭脉冲发送
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表