|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
軟件模擬RA3電平變化中斷(問題已解決) |
| 作者:lurker_soo 欄目:單片機(jī) |
用軟件模擬RA3電平變化中斷碰到很奇怪的現(xiàn)象,進(jìn)入中斷後出不來,軟件清除中斷標(biāo)志指令: bcf INTCON,RAIF 似乎不起作用,在執(zhí)行完retfie後,PC又回到0x04中斷入口地址。 RA3的PIN腳激勵(lì)如下: // // G:\PIC\Study\io_port\pps.scl // Generated by SCL Generator ver. 3.22.00.00 // 6/8/2006 14:48:17 // configuration for "PIC16F684" is end configuration; testbench for "PIC16F684" is begin clk_1: PROCESS is begin loop RA3 <= '0'; wait for 1000 ic; RA3 <= '1'; wait for 1000 ic; end loop; RA3 <= '1'; end PROCESS clk_1; end testbench; 測(cè)試程序如下: ;********************************************************************** ORG 0x000 ; PROCESSor reset vector nop goto main ; go to beginning of program fill (goto $),0x04-$ ORG 0x004 ; interrupt vector location movwf w_temp ; save off current W register contents movf STATUS,w ; move status register into W register movwf status_temp ; save off contents of STATUS register btfss INTCON,RAIE ; goto Int_error btfss INTCON,RAIF goto Int_error bcf INTCON,RAIF btfss PORTA,PPSIN goto Int_exit decfsz _step,F goto Int_exit movlw .4 movwf _step goto Int_exit Int_error goto $ Int_exit movf status_temp,w ; retrieve copy of STATUS register movwf STATUS ; restore pre-isr STATUS register contents swapf w_temp,f swapf w_temp,w ; restore pre-isr W register contents retfie ; return from interrupt ;*********************************************************************** main ; remaining code goes here call Systemosc_set call Device_init call Var_init banksel IOCA movlw 1<<IOCA3 movwf IOCA bcf INTCON,RAIF bsf INTCON,RAIE bsf INTCON,PEIE bsf INTCON,GIE nop goto $-.1 ;*********************************************************************** END 請(qǐng)幫忙看看是什麼原因?! 抱歉,我已知道什麼原因了,是因?yàn)檎`解了DATASHEET的意思了。 * - 本貼最后修改時(shí)間:2006-6-8 15:56:20 修改者:lurker_soo |
| 2樓: | >>參與討論 |
| 作者: lurker_soo 于 2006/6/8 15:53:00 發(fā)布:
問題已解決! 問題已解決! 抱歉,我已知道什麼原因了,是因?yàn)檎`解了DATASHEET的意思了。 |
|
| 3樓: | >>參與討論 |
| 作者: OYGGJ 于 2006/6/15 8:13:00 發(fā)布:
要讀一次PORTA,失去匹配條件,再BCF.... 要讀一次PORTA,失去匹配條件,再BCF.... |
|
|
|
| 免費(fèi)注冊(cè)為維庫電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |