![]() |
發布時間: 2019-4-30 01:17
正文摘要:看一下,52單片機的多慢吧。。。 PWM誤差有多大吧。 33M 12分頻 如果PWM頻率166.66 KHz 時哪么一個 一個PWM周期 約6uS. 把高低電平都設置成 3uS. |
ZMRGHY 發表于 2019-4-30 20:32 哥們還不明白呀,一共才7個時鐘的高電平,用C的話基本上就是什么事都做不了了,就是用匯編也是一樣的呀,你要這么高的頻率有什么意義呢? |
ZMRGHY 發表于 2019-4-30 20:28 0.36363636363636363636363636363636 * 8 = 2.9090909090909090909090909090909 這個是定時器累加的時間 但是進出中斷,用戶中斷處理語句這些時間呢? |
1xiaosun 發表于 2019-4-30 09:20 自動重裝, 如何改變頻率, 如何改變點空比呀。 |
cy002 發表于 2019-4-30 09:25 33M 12T 機器周期是 0.36363636636363636363 微秒。。。。。 |
Y_G_G 發表于 2019-4-30 08:40 匯編不會呀。。。。 |
地板說的對! 你把PWM的頻率做成166.66 KHz,用它做什么呢? 如果必須使用超過此頻率的PWM,也有解決方案,但不一定與你的方案一樣! 你用一個不確當的方案,去假設一個不確當的事件了,而后又想求解…… |
現在ARM流行,怎么嫌棄起來89C52了? 沒有PWM的時代,自己想辦法來實現PWM功能,89C52可是一個寶貝。。。。。。 |
程序中斷一次1us 100次是1ms ![]() |
定時器中斷可以用自動重裝,很準的 |
確實是這樣的 我搞了個定時器中斷 也是不對的 程序中斷一次1us 100次是1ms 出來的周期根本不是1ms 日了 |
你基礎不好 1:把仿真的東西當實際來說事 2:89C52不是12T,是6T 3:PWM頻率太高,一個定時器的中斷時間只有7個機器周期,兩三條指令就超過7個指令了,用匯編都得小心,用C占用的時間就更多了 |
你的計算不對,又定時器中斷產生PWM,要考慮中斷響應時間 其實現在很多51帶PWM了 |
51單片機在12M晶振條件下用普通方法極限輸出脈沖寬度3us,周期6us。通常小于10us的控制不適合用定時器。因為執行每一條語句都需要時間,這會造成中斷響應被迫延時。以下是12M晶振單片機輸出167KHz方波的程序和仿真。
![]() |