|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
關(guān)于中斷使PC指針跑飛的問題,請教 |
| 作者:wangyibo 欄目:單片機(jī) |
關(guān)于中斷使PC指針跑飛的問題,請教 各位好! 我在用I2C Slave模式時,只要中斷打開PC指針就跑飛,具體情況如下: 用的是P18F452, I2C 工作在Slave 模式, 就用了這一個中斷,具體如下: #pragma code InterruptVectoHigh=0x0008 void InterruptVectorHigh (void) { _asm goto InterruptHandlerHigh _endasm } #pragma code #pragma interrupt InterruptHandlerHigh void InterruptHandlerHigh () { if((PIE1bits.SSPIE)&&(PIR1bits.SSPIF)) { I2CSlaveHandler(); PIR1bits.SSPIF=0; } } 不知道我寫的中斷是否對的.在I2CSlaveHandler()里,主要就是通過SSPSTAT判斷是什么事件就做相應(yīng)的處理. 問題就是,只要中斷啟用,PC指針就跑飛了,有時跑到?jīng)]有調(diào)用的程序里,甚至跑到剩余的ROM空間了, 我把上面的程序改到Main()做查詢, 就很正常,PC指針也不亂, SCL,SDA,以及其他的監(jiān)測信號也很正常.具體如下: main() { // ..... .... while(1) { if(PIR1bits.SSPIF) { I2CSlaveHandler(); PIR1bits.SSPIF=0; } ............ .............. } } 還有這樣一個情況須說明,就是I2C 中斷會很頻繁,有可能一出就要進(jìn)入中斷. |
| 2樓: | >>參與討論 |
| 作者: zgl7903 于 2006/10/13 13:22:00 發(fā)布:
用HT-PICC18吧,我一直使用的很正常, 最穩(wěn)定的版本是8.05PL3 |
|
|
|
| 免費(fèi)注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |