推 WolfLord:T0一樣可以內部計時啊,不然用9600做BASE也不是不可以 08/02 20:30
推 WolfLord:利用TX的中斷來計時沒事就發出NULL送完一個字就是1/9600s 08/02 20:33
→ WolfLord:啊~ 說錯了,TX事大約1/960 秒才對 XD 08/02 20:34
→ deo2000:9600做Base對寫控制程式的人來說不夠直覺 08/02 21:25
→ deo2000:而且用Tx一個字元中斷的話,PWM 頻率不是會很低? 08/02 21:28
→ deo2000:1/960秒≒1mS,解析度100的話輸出只有10Hz,對嗎? 08/02 21:30
推 WolfLord:不一定要100啊~ 一般16階一經很夠用了。要精密的話還是 08/02 22:46
→ WolfLord:用T0吧~ T0可以設定趨近200uS,然後衍生一些計時器 08/02 22:47
→ WolfLord:這樣就很好用了 ^^;; 08/02 22:47
→ WolfLord:如果希望更快,建議換用22.1184。你得留一些Mcycle給ISR 08/02 22:48
→ deo2000:我照WolfLord的方法寫了個應該有100Hz的PWM,可是眼睛還是 08/02 23:37
→ deo2000:能感覺到LED有微微快速閃動耶,到底是哪裡拖慢了呢? 08/02 23:37
推 WolfLord:LED要眼睛看不清楚,閃動通常最少要快過於 1/20秒,你改 08/02 23:38
→ WolfLord:八階看看 08/02 23:39
→ deo2000:剛剛改16階就ok了,不過最終目的是要控制DC馬達,這樣不知 08/02 23:41
→ deo2000:到用來做控制夠不夠細 08/02 23:41
→ deo2000:100Hz 比 (1/20秒)/周 快五倍耶! 08/02 23:43
推 WolfLord:你試看看囉,其實馬達反應很慢的。像我在控制CNC規格上是 08/02 23:43
→ WolfLord:256階,但是操作指令就經常只是255,140,80,20,0這幾個 08/02 23:44
→ WolfLord:另外,你也可以在雲台上面裝檢角器,然後只送角度,讓 08/02 23:46
→ WolfLord:8051自己控制,這樣應該動作會更順暢。 08/02 23:47
→ deo2000:用encode的話,我題目整個就改掉了(驚) 08/02 23:50
→ WolfLord:那...合十(裝死) 08/03 00:15
推 ksmrt0123:你用那一顆51啊? 說不定有 timer2 08/03 09:11
→ deo2000:我是有52可用,但是我沒仔細研究過Timer2... 08/03 10:23
→ deo2000:好想直接用W79E82x有硬體PWM,可是沒華邦燒錄器 08/03 10:25
→ Deltaguita:要不要考慮功能強大的STC 系列? 08/04 00:01
推 WolfLord:其實我覺得deo的需求用4051都太大顆了:P 08/04 00:56
覺得太大顆是因為您功力深厚阿!
我了解對工具熟悉的時候,就可以用很簡單的硬體做到相對複雜的事情.
像我這個專題還有CUDA跟物件追蹤的部分要克服,很想找個內建2*PWM的MCU直接搞定馬達
※ 編輯: deo2000 來自: 118.168.13.135 (08/04 01:05)