找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6039|回復(fù): 7
收起左側(cè)

為什么單片機pwm要用定時器實現(xiàn)?直接io不是也行嗎 何必搞得那么麻煩呢

[復(fù)制鏈接]
ID:299872 發(fā)表于 2018-4-13 18:17 來自觸屏版 | 顯示全部樓層 |閱讀模式
問一個關(guān)于pwm的問題
為什么pwm要用定時器?

直接用單片機的io口控制下面這樣也能實現(xiàn)啊
p1_1=1
延時1ns
p1_1=0
延時1ns

然后修改延時時間來控制速度,可以嗎?

為什么要用定時器,那么麻煩??
回復(fù)

使用道具 舉報

ID:195836 發(fā)表于 2018-4-13 18:56 | 顯示全部樓層
修改延時時間也要通過編程實現(xiàn),也要占用時間啊。所以這樣占空比就會比你設(shè)計得小得多吧
回復(fù)

使用道具 舉報

ID:68847 發(fā)表于 2018-4-13 20:00 | 顯示全部樓層
好像是驅(qū)動電流不夠吧
回復(fù)

使用道具 舉報

ID:213173 發(fā)表于 2018-4-13 20:35 | 顯示全部樓層
你是高手,你寫一個1ns延時程序試試。
回復(fù)

使用道具 舉報

ID:123289 發(fā)表于 2018-4-13 21:37 | 顯示全部樓層
有此一問,說明樓主是有主見的人,敢于懷疑“書本”,贊一個!
同意你的說法!
不過,如果單片機有許多事件要處理時,你打算如何處理PWM呢?如同時需要處理“鍵盤”、多個LED“顯示”、多路AD量測、驅(qū)動多路開關(guān)……
回復(fù)

使用道具 舉報

ID:299872 發(fā)表于 2018-4-14 05:18 來自觸屏版 | 顯示全部樓層
明白了,本身是可行的。問題是時間受程序影響,所以要用不受程序影響時間的pwm。謝謝各位了。我是個文科畢業(yè)的,對這些很感興趣,基本功很差,所以有些問題讓大家見笑了!
回復(fù)

使用道具 舉報

ID:307802 發(fā)表于 2018-4-14 10:12 | 顯示全部樓層
如果用程序直接處理,單片機就不能做其他事情了,一旦做其他事情,就會延誤時間,而定時器是獨立運行的,一旦參數(shù)設(shè)置好,就可以不用程序干預(yù)準時執(zhí)行動作,實際上pwm也可以采用定時器中斷里加上IO控制指令來完成,這樣可以指定任意輸出口做pwm的輸出。
回復(fù)

使用道具 舉報

ID:307794 發(fā)表于 2018-4-14 10:17 | 顯示全部樓層
使用指令實現(xiàn)PWM的話CPU就不能去做其它事情了,其中如果發(fā)生中斷,PWM波也會不準確。用定時器計數(shù)器的話可以實現(xiàn)多線程的效果。
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表