找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

台灯的pwm调光单片机代码问题

查看数: 4180 | 评论数: 10 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2019-5-10 18:31

正文摘要:

网上找的一个程序,想请教大佬们,这段代码是怎么实现PWM的?X1为低电平时间,X2为高电平时间,LED置0时点亮,置1时熄灭。这段代码逻辑是啥?到底能不能实现PWM,连占空比都看不出来是多少,很急,谢谢大家。

回复

ID:285686 发表于 2022-12-27 14:11
搞个2812灯带玩一玩,可以任意颜色和亮度。
ID:420836 发表于 2022-12-24 23:59
PWM是一种方波脉冲串,占空比可调,占空比是开和关持续时间的比值。 该代码分别控制开启和关闭持续时间 X1 和 X2。 循环时间/计数为 1000。
ID:34149 发表于 2022-12-22 14:24
进来学习的,可惜代码不全。
ID:1058463 发表于 2022-12-22 10:05
占空比=X1/1000.总时间是1000个时间量,低电平时X1个时间量,高电平是1000-X1个时间量,改变X1就是改变占空比,实现亮与暗的时间比例变化,由于时间短,看到的是光的总亮度变化。
ID:883242 发表于 2022-12-21 16:51
m182892 发表于 2019-5-11 08:26
PWM周期是1000,首先是灯亮,等待X1低电平时间到,转为灯灭,持续X2时间,高电平占空比为X2/1000

问题是楼主位代码算X2的值算错了。
ID:1047841 发表于 2022-12-21 10:34
看到你这个代码  让我想到的是呼吸灯的代码,从灭到亮 逐渐变化的
ID:56665 发表于 2019-5-11 08:26
PWM周期是1000,首先是灯亮,等待X1低电平时间到,转为灯灭,持续X2时间,高电平占空比为X2/1000
ID:95038 发表于 2019-5-11 06:26
占空比=X1/1000.总时间是1000个时间量,低电平时X1个时间量,高电平是1000-X1个时间量,改变X1就是改变占空比,实现亮与暗的时间比例变化,由于时间短,看到的是光的总亮度变化。
ID:65297 发表于 2019-5-11 03:29
你的截图代码不完整,没办法解释, 而且X2本来就有问题,117-120行已经表明X1永远都是等于0后才往下执行,那么X2=1000-X1;这个就是多余的,123行的X2永远都是从1000开始减,
这个程序如果不给出完整的代码只能认为是错误的
ID:347954 发表于 2019-5-10 21:28
本帖最后由 ccl09 于 2019-5-11 13:38 编辑

while(x1!=0){},等待 x1*指令周期   的时间  ,x1<1000, while(x2!=0){},等待 x2*指令周期   的时间,占空比x2/1000.

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

Powered by 单片机教程网

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