標題: 臺燈的pwm調光單片機代碼問題 [打印本頁]

作者: 烤奶全糖    時間: 2019-5-10 18:31
標題: 臺燈的pwm調光單片機代碼問題
網上找的一個程序,想請教大佬們,這段代碼是怎么實現PWM的?X1為低電平時間,X2為高電平時間,LED置0時點亮,置1時熄滅。這段代碼邏輯是啥?到底能不能實現PWM,連占空比都看不出來是多少,很急,謝謝大家。

圖片1.png (19.95 KB, 下載次數: 55)

圖片1.png

作者: ccl09    時間: 2019-5-10 21:28
本帖最后由 ccl09 于 2019-5-11 13:38 編輯

while(x1!=0){},等待 x1*指令周期   的時間  ,x1<1000, while(x2!=0){},等待 x2*指令周期   的時間,占空比x2/1000.
作者: mkkop    時間: 2019-5-11 03:29
你的截圖代碼不完整,沒辦法解釋, 而且X2本來就有問題,117-120行已經表明X1永遠都是等于0后才往下執(zhí)行,那么X2=1000-X1;這個就是多余的,123行的X2永遠都是從1000開始減,
這個程序如果不給出完整的代碼只能認為是錯誤的
作者: ygshg    時間: 2019-5-11 06:26
占空比=X1/1000.總時間是1000個時間量,低電平時X1個時間量,高電平是1000-X1個時間量,改變X1就是改變占空比,實現亮與暗的時間比例變化,由于時間短,看到的是光的總亮度變化。
作者: m182892    時間: 2019-5-11 08:26
PWM周期是1000,首先是燈亮,等待X1低電平時間到,轉為燈滅,持續(xù)X2時間,高電平占空比為X2/1000
作者: JJJ1234    時間: 2022-12-21 10:34
看到你這個代碼  讓我想到的是呼吸燈的代碼,從滅到亮 逐漸變化的
作者: Hephaestus    時間: 2022-12-21 16:51
m182892 發(fā)表于 2019-5-11 08:26
PWM周期是1000,首先是燈亮,等待X1低電平時間到,轉為燈滅,持續(xù)X2時間,高電平占空比為X2/1000

問題是樓主位代碼算X2的值算錯了。
作者: awang79    時間: 2022-12-22 10:05
占空比=X1/1000.總時間是1000個時間量,低電平時X1個時間量,高電平是1000-X1個時間量,改變X1就是改變占空比,實現亮與暗的時間比例變化,由于時間短,看到的是光的總亮度變化。
作者: dyx811    時間: 2022-12-22 14:24
進來學習的,可惜代碼不全。
作者: TTQ001    時間: 2022-12-24 23:59
PWM是一種方波脈沖串,占空比可調,占空比是開和關持續(xù)時間的比值。 該代碼分別控制開啟和關閉持續(xù)時間 X1 和 X2。 循環(huán)時間/計數為 1000。
作者: jinhua1916    時間: 2022-12-27 14:11
搞個2812燈帶玩一玩,可以任意顏色和亮度。





歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1