[問題] PWM 與 UART 的TH1衝突如何解決?

看板ASM (組合語言)作者 (800IM)時間12年前 (2012/08/02 20:16), 編輯推噓7(7021)
留言28則, 4人參與, 最新討論串1/1
我要用 8051 做一個軟體的多組 PWM 輸出, 方法參照 Worfload #1BZWffSY 提供的方式, 也就是用 Timer1 中斷來做, 而不是像一般書上教的,用 delay(Period-Duty) + delay(Duty)來做 但是我要利用 UART,使 NB 可以動態修改 PWM, UART 要把 bandrate 設在 TH1(=0xfd;// 9600bps @ 11.059MHz) Timer1 要把 計時上限 設在 TH1(255-100) 那這樣怎麼辦? Timer0 又可只用於外部中斷 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.168.13.135

08/02 20:30, , 1F
T0一樣可以內部計時啊,不然用9600做BASE也不是不可以
08/02 20:30, 1F

08/02 20:33, , 2F
利用TX的中斷來計時沒事就發出NULL送完一個字就是1/9600s
08/02 20:33, 2F

08/02 20:34, , 3F
啊~ 說錯了,TX事大約1/960 秒才對 XD
08/02 20:34, 3F

08/02 21:25, , 4F
9600做Base對寫控制程式的人來說不夠直覺
08/02 21:25, 4F

08/02 21:28, , 5F
而且用Tx一個字元中斷的話,PWM 頻率不是會很低?
08/02 21:28, 5F

08/02 21:30, , 6F
1/960秒≒1mS,解析度100的話輸出只有10Hz,對嗎?
08/02 21:30, 6F

08/02 22:46, , 7F
不一定要100啊~ 一般16階一經很夠用了。要精密的話還是
08/02 22:46, 7F

08/02 22:47, , 8F
用T0吧~ T0可以設定趨近200uS,然後衍生一些計時器
08/02 22:47, 8F

08/02 22:47, , 9F
這樣就很好用了 ^^;;
08/02 22:47, 9F

08/02 22:48, , 10F
如果希望更快,建議換用22.1184。你得留一些Mcycle給ISR
08/02 22:48, 10F

08/02 23:37, , 11F
我照WolfLord的方法寫了個應該有100Hz的PWM,可是眼睛還是
08/02 23:37, 11F

08/02 23:37, , 12F
能感覺到LED有微微快速閃動耶,到底是哪裡拖慢了呢?
08/02 23:37, 12F

08/02 23:38, , 13F
LED要眼睛看不清楚,閃動通常最少要快過於 1/20秒,你改
08/02 23:38, 13F

08/02 23:39, , 14F
八階看看
08/02 23:39, 14F

08/02 23:41, , 15F
剛剛改16階就ok了,不過最終目的是要控制DC馬達,這樣不知
08/02 23:41, 15F

08/02 23:41, , 16F
到用來做控制夠不夠細
08/02 23:41, 16F

08/02 23:43, , 17F
100Hz 比 (1/20秒)/周 快五倍耶!
08/02 23:43, 17F

08/02 23:43, , 18F
你試看看囉,其實馬達反應很慢的。像我在控制CNC規格上是
08/02 23:43, 18F

08/02 23:44, , 19F
256階,但是操作指令就經常只是255,140,80,20,0這幾個
08/02 23:44, 19F

08/02 23:46, , 20F
另外,你也可以在雲台上面裝檢角器,然後只送角度,讓
08/02 23:46, 20F

08/02 23:47, , 21F
8051自己控制,這樣應該動作會更順暢。
08/02 23:47, 21F

08/02 23:50, , 22F
用encode的話,我題目整個就改掉了(驚)
08/02 23:50, 22F

08/03 00:15, , 23F
那...合十(裝死)
08/03 00:15, 23F

08/03 09:11, , 24F
你用那一顆51啊? 說不定有 timer2
08/03 09:11, 24F

08/03 10:23, , 25F
我是有52可用,但是我沒仔細研究過Timer2...
08/03 10:23, 25F

08/03 10:25, , 26F
好想直接用W79E82x有硬體PWM,可是沒華邦燒錄器
08/03 10:25, 26F

08/04 00:01, , 27F
要不要考慮功能強大的STC 系列?
08/04 00:01, 27F

08/04 00:56, , 28F
其實我覺得deo的需求用4051都太大顆了:P
08/04 00:56, 28F
覺得太大顆是因為您功力深厚阿! 我了解對工具熟悉的時候,就可以用很簡單的硬體做到相對複雜的事情. 像我這個專題還有CUDA跟物件追蹤的部分要克服,很想找個內建2*PWM的MCU直接搞定馬達 ※ 編輯: deo2000 來自: 118.168.13.135 (08/04 01:05)
文章代碼(AID): #1G6c-IkF (ASM)
文章代碼(AID): #1G6c-IkF (ASM)