ASM 板


LINE

看板 ASM  RSS
測試了一整個晚上 想要用 UART 動態改變 PWM 值, PWM 值 是由 Timer loop 中讀取 Pin 0~3 所決定 (存放在PWM_Pin[]) UART 要傳入新 PWM 值的時候會由 RI 中斷, 但是不知道怎麼搞得,一被 RI 中斷,就再也回不去 main loop 了 我不知道 uVision 怎麼像 MSVC 一步一步地的看變數 debug, 只能從硬體動作推測程式碼實際動作 code在此 http://pastie.org/4389549 拜託各位了... Orz --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.122.167.217
1F:→ lion21:1.你怎會開IE0中斷?2.T1執行週期太短.小於PWM副程式時間 08/04 23:00
IE=0x92=1001,1010(Bin) IE.0是停用的 ※ 編輯: deo2000 來自: 140.122.167.217 (08/05 02:53) 把 PWM_PerCycle() 改寫成 Timer0 的中斷副程式,而不用垂詢,就可用UART控制Duty了 http://pastie.org/4391162 但還是有個不懂的地方.這個新程式輸出 PWM 週期應該是 10us中斷一次*10解析度=100us(Rx都沒收到東西的話) f應該是10kHz,但是實際上看電路動作,目測大約10Hz, 馬達整個抖得很厲害,直流馬達跑得像步進馬達一樣,是哪裡出問題呢? ※ 編輯: deo2000 來自: 140.122.167.217 (08/05 06:13)
2F:→ lion21:IE0是我看錯.但是 0x92的bin應該是 1001-0010 08/05 15:40
3F:→ lion21:&& buf<=0x39 .&& buf<=0x46 好像是多餘的 08/05 15:44
4F:→ lion21:buf 的計算很詭異 08/05 15:45
5F:→ lion21:0x30<=buf 應該是 >= 08/05 15:46
6F:→ lion21:重點應該是 10us中斷一次 太短.你的中斷程式一定超過10us 08/05 15:47
請問執行時間怎麼看呢? 是翻譯成組合語言後,對照原廠規格,每個指令需要1或2個機器週期嗎? ※ 編輯: deo2000 來自: 140.122.167.217 (08/05 17:20)
7F:推 lion21:你說的是一種方法.我都是用示波器看. 08/05 17:23
8F:→ lion21:其實你大約算看看就知道了. 08/05 17:23
9F:推 WolfLord:8051在11.059MHZ下10uS只有9個M Cycle,扣掉中斷的兩個週 08/05 23:32
10F:→ WolfLord:期以及反還的2個週期你只剩五個一週指令可以用喔 08/05 23:33
11F:推 WolfLord:1.馬達對於頻率反應並不快,你不需要這麼高的頻率 08/06 07:45
12F:→ WolfLord:2.你不可以用TA7279AP來驅動,因為認一端截止都會變成 08/06 07:46
13F:→ WolfLord:電磁煞車(只要你關閉馬達,包括PWM訊號的OFF)你發抖的 08/06 07:46
14F:→ WolfLord:原因是因為你的PWM變成電磁煞車。改用L298,把PWM接到 08/06 07:47
15F:→ WolfLord:EN 訊號去。然後停車時PWM為FULL(電磁煞車) 08/06 07:48
16F:→ WolfLord: 任一端截止 08/06 07:49
17F:推 WolfLord:3.建議時鐘改22.1184,然後TH0改成0x80 08/06 07:52
18F:→ WolfLord:4.SERIAL(232)不要用中斷(會撞到T0)用MAIN LOOP 08/06 07:53
TA7279AP 要兩個輸入都 Hi 才會變成煞車,其他三個狀態是 正 反 空檔 目前測試結果,TA7279AP的確對PWM會有響應. 目前遇到最大的問題是:不管怎麼寫,寫出來的 PWM 頻率總是比理論上低很多 例如 200uS中斷一次*100解析度=20mS一周,但實際上一周卻有好幾秒 而且,把 PWM 中斷函式 的計時從 1~256uS 發現輸出都差不多,大約10Hz; 但是單獨用 Timer 中斷寫一個 LED 閃爍程式卻沒錯誤. 我觀察到的抖動原因,認為是頻率過低,而不是煞車; 因為我同時把訊號輸出到 P0 和 P1,一個馬達,另一個LED, 從 LED 觀測訊號可以避掉馬達的一些效應. 至於你建議的方法1.3.4.我會試看看 最近為了這個身心俱疲,找了一堆書,發現寫的應用例子都差不多,而且PWM部分很淺 ※ 編輯: deo2000 來自: 140.122.167.217 (08/06 08:41)
19F:→ WolfLord:TA7279 沒有高阻抗狀態,不管你拉LOW或HIGH只要兩端一樣 08/06 08:39
20F:→ WolfLord:都是電磁煞車狀態 08/06 08:39
剛剛看datasheet確認是有 http://pdf1.alldatasheet.com/datasheet-pdf/view/31270/TOSHIBA/TA7279AP.html page 4 ※ 編輯: deo2000 來自: 140.122.167.217 (08/06 08:44)
21F:推 WolfLord:那你就繼續用吧,不過你如果堅持要用TA7279你就得繼續跟 08/06 08:48
22F:→ WolfLord:MCU的指令速度跟頻率格鬥,而且也沒辦法使用硬體PWM 08/06 08:49
照你說的,拿掉 interrupt 4 之後,預期的頻率就出來了! ※ 編輯: deo2000 來自: 140.122.167.217 (08/06 08:52)
23F:推 WolfLord:@所以,結果就是你中斷打架,彼此吃掉對方的CPU週期嘛 08/06 08:55
24F:→ WolfLord:你要使用TA7279你的中斷內IO動作就多,不要期待頻率太高 08/06 08:57
25F:→ WolfLord:不然CPU跑不完中斷你就等著堆疊大錯亂 XDD 08/06 08:57
26F:推 Deltaguita:怕中斷打架的話 可以考慮硬體PWM的MCU 08/06 09:02
27F:推 lion21:如果你堅持目前架構.問題就在你的中斷副程式太肥了 08/06 10:14
28F:推 WolfLord:他的硬體架構要用硬體PWM恐怕問題還很大哩 :P 08/06 17:44
剛剛看 datasheet,L298似乎邏輯較簡單,對PWM響應會比較好? ※ 編輯: deo2000 來自: 140.122.167.217 (08/06 18:22)
29F:推 WolfLord:因為他可以PWM是PWM,方向是方向。所以你產生PWM的中斷 08/06 20:48
30F:→ WolfLord:函式就可以精簡。中斷函式精簡你就比較不用跟CPU的指令 08/06 20:49
31F:→ WolfLord:週期葛葛纏,剪不斷理還亂。而且L298還有提供過載檢知, 08/06 20:51
32F:→ WolfLord:你的驅動電路可以簡單的做得更完善。 08/06 20:51
33F:推 WolfLord:你想用硬體PWM,硬體的PWM也是單獨輸出,你方向跟PWM還得 08/06 20:54
34F:→ WolfLord:做外部電路整合,單靠TA7279你是無法整合硬體PWM產生器的 08/06 20:55
35F:推 ksmrt0123:TA7279比L298簡單也更適合PWM, 只是power小 08/06 23:55
Power小沒關係,負載只有webcam. 可以問一下,為什麼更適合PWM呢? 我看TA7279的 input 到 H-橋 中間還有一塊未知電路
36F:→ WolfLord:你要靠不段變換輸出狀態嗎? 還是外接一個電源控制晶體? 08/07 00:14
本來有想過用PWM接 P-MOS 或 PNP,但是覺得這樣電路會太複雜 ※ 編輯: deo2000 來自: 140.122.167.217 (08/07 01:56)
37F:推 WolfLord:不管你要接PN晶體來世MOS,從+端控制只要馬達跟邏輯電壓 08/07 02:35
38F:→ WolfLord:不一樣,LEVEL SHIFT都不會是太簡單的電路(要懂類比) 08/07 02:36
39F:→ WolfLord: 還是 08/07 02:36
40F:→ WolfLord:所以我還是覺得L298比較好用 ^.^ 08/07 02:37
41F:推 ksmrt0123:TA7279AP因為有高阻抗狀態比較適合PWM控制 08/07 09:32
42F:推 WolfLord:把L298的EN拉道地現她就自然高阻抗了,要PWM直接送EN就好 08/07 15:07
43F:→ WolfLord:了,你用TA7279你還要花中斷內CPU時間改變兩個輸出狀態 08/07 15:08
44F:→ WolfLord:而且為了等一下要還原你還得保存剛剛的狀態。這對於CPU 08/07 15:09
45F:→ WolfLord:TIME不高的標準51哪裡佔優勢了? 08/07 15:09
46F:→ WolfLord: 拉到地線 08/07 15:10
47F:→ WolfLord:然後你不滿意還可以從L298的ISENSE(電流監測腳)對它進 08/07 15:12
48F:→ WolfLord:行外加一個MOS或NPN晶體的CE PWM控制。我怎麼覺得日本IC 08/07 15:13
49F:→ WolfLord:設計用途根本就不是給你這樣用的? 08/07 15:13
50F:→ ksmrt0123:兩組pwm輸出到in1/in2不就好了? 且這樣只需2 pins 08/07 23:18
51F:→ ksmrt0123:現在很多mcu都有多組pwm輸出 用fw寫pwm也不見得差很多 08/07 23:19
52F:推 WolfLord:你硬體PWM輸出如果不經過組合怎麼接上TA7279 ? 08/08 03:36
53F:→ WolfLord: 外部組合電路 08/08 03:37
54F:→ WolfLord:然後兩組硬體PWM對應一個IO 這樣算是比較優嗎? 08/08 03:39
55F:推 ksmrt0123:pwm1->in1, pwm2->in2, 然後控制兩組pwm的duty cycle 08/08 09:58
56F:→ ksmrt0123:就可做出對brushed dc motor的所有動作 08/08 09:59
57F:→ deo2000:我不是用BLDC,控制的目標是兩顆減速有刷DCM 08/08 10:30
58F:→ ksmrt0123:brush=電刷, brushED=有刷, brushLESS才是無刷 08/08 19:19
59F:推 WolfLord:不跟你爭辯了,反正哪個好用大家冷暖自知 XD 08/08 19:24
60F:→ deo2000:抱歉看錯..看成brushless 08/08 21:11







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Soft_Job站內搜尋

TOP