[問題] 被RI中斷之後就不去main的迴圈了
測試了一整個晚上
想要用 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
→
08/04 23:00, , 1F
08/04 23:00, 1F
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)
→
08/05 15:40, , 2F
08/05 15:40, 2F
→
08/05 15:44, , 3F
08/05 15:44, 3F
→
08/05 15:45, , 4F
08/05 15:45, 4F
→
08/05 15:46, , 5F
08/05 15:46, 5F
→
08/05 15:47, , 6F
08/05 15:47, 6F
請問執行時間怎麼看呢?
是翻譯成組合語言後,對照原廠規格,每個指令需要1或2個機器週期嗎?
※ 編輯: deo2000 來自: 140.122.167.217 (08/05 17:20)
推
08/05 17:23, , 7F
08/05 17:23, 7F
→
08/05 17:23, , 8F
08/05 17:23, 8F
推
08/05 23:32, , 9F
08/05 23:32, 9F
→
08/05 23:33, , 10F
08/05 23:33, 10F
推
08/06 07:45, , 11F
08/06 07:45, 11F
→
08/06 07:46, , 12F
08/06 07:46, 12F
→
08/06 07:46, , 13F
08/06 07:46, 13F
→
08/06 07:47, , 14F
08/06 07:47, 14F
→
08/06 07:48, , 15F
08/06 07:48, 15F
→
08/06 07:49, , 16F
08/06 07:49, 16F
推
08/06 07:52, , 17F
08/06 07:52, 17F
→
08/06 07:53, , 18F
08/06 07:53, 18F
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)
→
08/06 08:39, , 19F
08/06 08:39, 19F
→
08/06 08:39, , 20F
08/06 08:39, 20F
剛剛看datasheet確認是有
http://pdf1.alldatasheet.com/datasheet-pdf/view/31270/TOSHIBA/TA7279AP.html
page 4
※ 編輯: deo2000 來自: 140.122.167.217 (08/06 08:44)
推
08/06 08:48, , 21F
08/06 08:48, 21F
→
08/06 08:49, , 22F
08/06 08:49, 22F
照你說的,拿掉 interrupt 4 之後,預期的頻率就出來了!
※ 編輯: deo2000 來自: 140.122.167.217 (08/06 08:52)
推
08/06 08:55, , 23F
08/06 08:55, 23F
→
08/06 08:57, , 24F
08/06 08:57, 24F
→
08/06 08:57, , 25F
08/06 08:57, 25F
推
08/06 09:02, , 26F
08/06 09:02, 26F
推
08/06 10:14, , 27F
08/06 10:14, 27F
推
08/06 17:44, , 28F
08/06 17:44, 28F
剛剛看 datasheet,L298似乎邏輯較簡單,對PWM響應會比較好?
※ 編輯: deo2000 來自: 140.122.167.217 (08/06 18:22)
推
08/06 20:48, , 29F
08/06 20:48, 29F
→
08/06 20:49, , 30F
08/06 20:49, 30F
→
08/06 20:51, , 31F
08/06 20:51, 31F
→
08/06 20:51, , 32F
08/06 20:51, 32F
推
08/06 20:54, , 33F
08/06 20:54, 33F
→
08/06 20:55, , 34F
08/06 20:55, 34F
推
08/06 23:55, , 35F
08/06 23:55, 35F
Power小沒關係,負載只有webcam.
可以問一下,為什麼更適合PWM呢? 我看TA7279的 input 到 H-橋 中間還有一塊未知電路
→
08/07 00:14, , 36F
08/07 00:14, 36F
本來有想過用PWM接 P-MOS 或 PNP,但是覺得這樣電路會太複雜
※ 編輯: deo2000 來自: 140.122.167.217 (08/07 01:56)
推
08/07 02:35, , 37F
08/07 02:35, 37F
→
08/07 02:36, , 38F
08/07 02:36, 38F
→
08/07 02:36, , 39F
08/07 02:36, 39F
→
08/07 02:37, , 40F
08/07 02:37, 40F
推
08/07 09:32, , 41F
08/07 09:32, 41F
推
08/07 15:07, , 42F
08/07 15:07, 42F
→
08/07 15:08, , 43F
08/07 15:08, 43F
→
08/07 15:09, , 44F
08/07 15:09, 44F
→
08/07 15:09, , 45F
08/07 15:09, 45F
→
08/07 15:10, , 46F
08/07 15:10, 46F
→
08/07 15:12, , 47F
08/07 15:12, 47F
→
08/07 15:13, , 48F
08/07 15:13, 48F
→
08/07 15:13, , 49F
08/07 15:13, 49F
→
08/07 23:18, , 50F
08/07 23:18, 50F
→
08/07 23:19, , 51F
08/07 23:19, 51F
推
08/08 03:36, , 52F
08/08 03:36, 52F
→
08/08 03:37, , 53F
08/08 03:37, 53F
→
08/08 03:39, , 54F
08/08 03:39, 54F
推
08/08 09:58, , 55F
08/08 09:58, 55F
→
08/08 09:59, , 56F
08/08 09:59, 56F
→
08/08 10:30, , 57F
08/08 10:30, 57F
→
08/08 19:19, , 58F
08/08 19:19, 58F
推
08/08 19:24, , 59F
08/08 19:24, 59F
→
08/08 21:11, , 60F
08/08 21:11, 60F
ASM 近期熱門文章
PTT數位生活區 即時熱門文章