![]() |
發(fā)布時間: 2017-3-12 17:06
正文摘要:剛剛搜了一下,發(fā)現(xiàn)壇里還沒有這樣分析PWM的帖子,然后發(fā)了一個。 手電LED控制或馬達(dá)轉(zhuǎn)速控制都離不開PWM,下面有兩種方法可以模擬PWM的。如果不正確希望各位指教。 //用定時器計算方式模擬PWM,高低電平 ... |
這種最高頻率也超不過去2k吧? |
本帖最后由 wjw7680 于 2022-8-17 15:49 編輯 第二個程序根本實現(xiàn)不了PWM,只要中斷11次,k值就會超過num,P20=1一直輸出高電平。第一個也有問題,定時器初值在TR0=0時對TL0,TH0賦初值才有效。中斷內(nèi)沒有TR0=0,沒法改變定時器內(nèi)的TL0,TH0 ![]() ![]() |
wosiyabo 發(fā)表于 2017-3-12 23:01 ![]() |
是不是再搞一臺示波器,哎 ,小白很迷茫啊 |
//缺點:高低電平會的百分之一格不受控制 這句怎么理解呢? |
wosiyabo 發(fā)表于 2017-3-12 23:01 是說第一種方式不好,要用第二種? |
第二種方法用過,的確頻率跑不高,我做的最高才300hz |
謝謝您的分享,謝謝你的經(jīng)驗分享! |
還有樓主,輸出腳不需要設(shè)置成推挽么?謝謝 |
wosiyabo 發(fā)表于 2017-3-28 20:16 我是STC15W1K16S,我按照你的第一種方式來弄的,弄了之后燈能點亮,但是怎么弄亮度都不變,謝謝! |
jgp886585 發(fā)表于 2017-3-28 19:11 你用的是什么單片機(jī)?我是在STC15W4kK58S4的平臺上試的,有兩個按鍵可以調(diào)加大的減小占空比。我都在示波器上試過的。你用其他型號的單片機(jī)注意有些IO初始化和AUXR寄存器等要設(shè)置。 |
樓主,你這個我怎么弄不成PWM波呢,反應(yīng)都沒有 |
謝謝樓主啦!!分享很好 |
學(xué)習(xí)了@@ |
終于知道第一種PWM為什么會不受控了。因為定時器內(nèi)指令執(zhí)行時間過長超出定時器設(shè)定的時間時會導(dǎo)致系統(tǒng)崩潰。 當(dāng)定時器賦值為TH0=0xFF,TL0=0xFF時,那怕是在定時器內(nèi)運(yùn)行很少的指令也很可能會導(dǎo)致指令未執(zhí)行完就溢出了。 所以如果有人用第一種PWM時,切記賦值不要過大"TH0=0xFF,TL0=0xFF"否則會有問題。。! |
Powered by 單片機(jī)教程網(wǎng)