|
|||||||||||
| 技術交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術 | 電源技術 | 測控之家 | EMC技術 | ARM技術 | EDA技術 | PCB技術 | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術 | 新手園地 | 單 片 機 | DSP技術 | MCU技術 | IC 設計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
再次求助斑竹 |
| 作者:kindwyw 欄目:單片機 |
我用16F917芯片,一開機后程序經(jīng)常在中斷里死循環(huán)跳不出來,請高手們幫我分析,謝謝 ORG 0004H MOVWF W_TEMP SWAPF W_TEMP,1 SWAPF STATUS,W MOVWF STATUS_TEMP BCF STATUS,RP0 BTFSC PIR1,TMR2IF GOTO TCCINT2 BTFSC INTCON,T0IF GOTO TCCINT1 BTFSC PIR1,ADIF GOTO ADINT INTEND: SWAPF STATUS_TEMP,0 MOVWF STATUS SWAPF W_TEMP,W RETFIE 樓上朋友們,我判斷有中斷來就去執(zhí)行中短程序,在中斷程序里有對相應標志位清零,還有至于中斷允許位,我在程序初始化里就設置好了,就不知問題出在那里,還請斑竹幫忙看看,謝謝 |
| 2樓: | >>參與討論 |
| 作者: ocon 于 2006/8/31 23:18:00 發(fā)布:
越權提示: 可能某些中斷并未禁止,當它產(chǎn)生中斷的時候,你的3個判斷條件都不滿足,所以沒有清中斷標志就退出中斷,造成死循環(huán),在“INTEND:”之前加句點亮LED之類的語句就可以看出來。另外,中斷標志位在條件符合的時候就會被置位,而不管此中斷是否已經(jīng)允許。 祝你成功。 |
|
| 3樓: | >>參與討論 |
| 作者: hotpower 于 2006/8/31 23:42:00 發(fā)布:
先關其中2個中斷玩玩~~~ |
|
| 4樓: | >>參與討論 |
| 作者: kindwyw 于 2006/9/1 13:12:00 發(fā)布:
回復,ocon 謝謝OCON的真誠幫助,還有我除了三中斷外其他中斷都關餓,若PB口,現(xiàn)在好多了,問題出在讀寫EEPROM時出錯,不過偶爾還是會出錯,不知是不是數(shù)碼管動態(tài)掃描的時間跟AD和PWM之間有沖突,請高手們幫我分析 |
|
| 5樓: | >>參與討論 |
| 作者: ocon 于 2006/9/1 16:06:00 發(fā)布:
PIC的EEPROM有個特殊的地方, 寫之前要禁止總中斷GIE,之后循環(huán)判斷GIE位是否已經(jīng)清零成功,不成則繼續(xù)清零到成功為止,之后才能開始發(fā)55、AA。 |
|
| 6樓: | >>參與討論 |
| 作者: ocon 于 2006/9/1 16:15:00 發(fā)布:
這些在芯片數(shù)據(jù)表里都有的。
|
|
| 7樓: | >>參與討論 |
| 作者: xieyuanbin 于 2006/9/2 7:37:00 發(fā)布:
贊成HOTPOWER的方法。 如果找不到毛病,就采用逐步排除法,并且在每個中斷中設置不同的LED信號加以區(qū)別。另外在各個中斷中判斷相應使能位是否使能,否則退出。 你的程序貼得也不全,究竟別的中斷有沒有開也不知道。 |
|
| 8樓: | >>參與討論 |
| 作者: kindwyw 于 2006/9/2 13:59:00 發(fā)布:
謝謝那么多同行門的幫助 ORG 0004H MOVWF W_TEMP SWAPF W_TEMP,1 SWAPF STATUS,W MOVWF STATUS_TEMP BCF STATUS,RP0 BTFSC PIR1,TMR2IF GOTO TCCINT2 BTFSC INTCON,T0IF GOTO TCCINT1 BTFSC PIR1,ADIF GOTO ADINT INTEND: SWAPF STATUS_TEMP,0 MOVWF STATUS SWAPF W_TEMP,W RETFIE ADINT: AD我有兩路通道轉(zhuǎn)換, 請問同行,我用ICD2方針時,老是會跳到中斷里去執(zhí)行,中斷是不是沒辦法方針 現(xiàn)在程序執(zhí)行好多了,就是偶爾按下某個功能鍵有時會跳到中斷里出不來,請大家分析一下,謝謝 |
|
| 9樓: | >>參與討論 |
| 作者: yewuyi 于 2006/9/2 15:30:00 發(fā)布:
中斷查詢一定要帶中斷容許標志一起查…… 這點非常關鍵…… 讀寫內(nèi)部EE的時候,一定要關了GIE,如果不關,就必須確保讀寫的時候不可能發(fā)生任何的中斷響應。 另外就是中斷時的數(shù)據(jù)保全,要仔細查自己的程序看看有沒有未保全的變量。 |
|
| 10樓: | >>參與討論 |
| 作者: xieyuanbin 于 2006/9/3 7:39:00 發(fā)布:
莫名其妙跳到中斷一定是有硬件或軟件問題。 如果別的中斷不開,那么就可能是外界在引腳上引入中斷,比如懸空的引腳引起的INT0,引腳電平變化中斷等。 |
|
| 11樓: | >>參與討論 |
| 作者: hotpower 于 2006/9/4 22:26:00 發(fā)布:
哈哈~~~匯編的程序頁搗的鬼~~~ |
|
| 12樓: | >>參與討論 |
| 作者: ocon 于 2006/9/5 0:34:00 發(fā)布:
進出中斷要注意保護環(huán)境。。。 MOVWF W_TEMP SWAPF STATUS,W CLRF STATUS MOVWF S_TEMP MOVF PCLATH,W MOVWF P_TEMP CLRF PCLATH ;------------ ;------------ RETF MOVF P_TEMP,W MOVWF PCLATH SWAPF S_TEMP,W MOVWF STATUS SWAPF W_TEMP,F SWAPF W_TEMP,W RETFIE |
|
| 13樓: | >>參與討論 |
| 作者: kindwyw 于 2006/9/5 11:06:00 發(fā)布:
探討 hotpower:我的程序在2K以內(nèi),應該不存在匯編的程序頁的問題吧 xieyuanbin兄說的有可能,可能是線路有點問題,我怎么上傳線路圖呢,希望大家一起看了探討 |
|
| 14樓: | >>參與討論 |
| 作者: xieyuanbin 于 2006/9/5 18:01:00 發(fā)布:
你有懸空的腳沒? 懸空又設置成輸入最易引入干擾,再一個就是外部引腳阻抗超過50K,抗干擾性能也不好。 |
|
| 15樓: | >>參與討論 |
| 作者: kindwyw 于 2006/9/7 11:56:00 發(fā)布:
回復xieyuanbin PA口的2.3.4.5是空的,不過我設置成輸出了,現(xiàn)在我中斷現(xiàn)場加了PCLATH的保護感覺程序運行穩(wěn)定很多,不過偶爾還是要有上述問題,謝謝那么多熱心的同行們,再一次謝謝了 |
|
|
|
| 免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |