Re: 計時中斷不能正常動作
|
||||
---|---|---|---|---|
高級會員
|
好像少一行!!
delay_1ms: nop movlw VAL_US movwf count dec_loop nop decfsz count goto dec_loop return 再問你一個問題: 如果中斷副程式正確地 1ms中斷一次 , 剛好在delay_1ms副程式的 movlw VAL_US執行完還沒執行下一行時產生中斷, 並且將 W 改為6後返回 , 那你的delay_1ms 的delay時間會變成怎樣?? 同樣的狀況 , 如果中斷剛好在 movlw VAL_MS執行完時產生中斷, 那 delay_250mS 會 delay 多久 ??
發表於: 2009/5/14 23:24
|
|||
|
Re: 計時中斷不能正常動作
|
||||
---|---|---|---|---|
新會員
|
你好,這是延遲時間
delay_250mS: movlw VAL_MS movwf count_ms loop_ms call delay_1ms decfsz count_ms goto loop_ms return ;****************************** delay_1ms: nop movlw VAL_US movwf count dec_loop nop goto dec_loop return
發表於: 2009/5/14 22:28
|
|||
|
Re: 計時中斷不能正常動作
|
||||
---|---|---|---|---|
高級會員
|
另外 , 請問你的 OSC 用多少? , TIMER0多久中斷一次 ??
假設OSC用 4M Hz , 則預除16且TMR0設6 約 1ms中斷一次 , 那中斷內再 call delay_250ms 就不合理了. 參照: 我的計時中斷程式是否有寫錯, 我建議計時中斷程式 做 一秒 的計時 , 主程式看到一秒到了, 去點 PORTC 的 LED
發表於: 2009/5/14 16:19
Edited by genitec on 2009年05月14日 16:41:09
Edited by genitec on 2009年05月14日 16:41:54 |
|||
|
Re: 計時中斷不能正常動作
|
||||
---|---|---|---|---|
高級會員
|
版大眼花又看錯 ic了 , 16f877 的TIMER0 中斷 只需設 T0IE及GIE 即可.
Attach file: (0.00 KB)
發表於: 2009/5/14 16:13
|
|||
|
Re: 計時中斷不能正常動作
|
||||
---|---|---|---|---|
版主
|
INTCON 裡的 PEIE (Peripheral Interrupt Enable Bit) 要設為 1, 並依起配合 GIE 這樣才可以中斷。
發表於: 2009/5/14 13:39
|
|||
|
Re: 計時中斷不能正常動作
|
||||
---|---|---|---|---|
高級會員
|
你的主程式 有呼叫 delay_250ms , 中斷副程式內也有(這部份有點??) , 而且中斷副程式有改到 w_reg 的值 , 那主程式呼叫的delay_250ms 有可能永遠出不來
能不能把你的 delay_250ms 的內容放上來 ??
;*********************************************************
發表於: 2009/5/14 12:39
|
|||
|
Re: 計時中斷不能正常動作
|
||||
---|---|---|---|---|
版主
|
建議參考一下 201 ASP 教育訓練課程,那裡使用PIC16F887 配合 APP001 實驗版所做的練習。中斷、pwm、adc 等都有範例可參考。
http://www.microchip.com.tw/modules/w ... glefile.php?cid=3&lid=380
發表於: 2009/5/14 11:08
|
|||
|
Re: 計時中斷不能正常動作
|
||||
---|---|---|---|---|
資深會員
|
不要用 rar 上傳 檔案會損害 改用 zip 再試一次
可能是你在中斷( isr ) 沒將中斷旗標 清除掉 , 就跳出中斷 會造成 不斷重新進入中斷..... 例如 用 TIMER 0 則要在 ISR 內 將 T0IF 清除 ( BCF INTCON , T0IF ) 試著 用 MPLAB SIM ( DEBUG 選項 ) 用單步追蹤 就可明瞭
發表於: 2009/5/14 1:14
Edited by Beee on 2009年05月14日 04:21:08
|
|||
|
計時中斷不能正常動作
|
||||
---|---|---|---|---|
新會員
|
個位高手你們好
最近我才學pic這個程式,因為在大學其間只有有8051跟VB還有C語言,可是都沒有好好學感到可惜,想說已經出社會一年了不應該再浪費時間,趁年青趕快學一些專長 小弟現在已經練習到計時中斷,我已經研究2個星期了也是稿不出所以,想說請叫個位高手,我的計時中斷程式是否有寫錯,因為我寫完程式燒錄在16F877上沒有動作,連1顆led都不亮,如果我打計時中斷把它去掉,led就可以正常動作,所以麻煩高手請多多指導小弟 Attach file: Link only for registered users
發表於: 2009/5/14 0:34
Edited by tree on 2009年05月14日 01:39:17
|
|||
|