|
|||||||||||
| 技術交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術 | 電源技術 | 測控之家 | EMC技術 | ARM技術 | EDA技術 | PCB技術 | 嵌入式系統(tǒng) 驅動編程 | 集成電路 | 器件替換 | 模擬技術 | 新手園地 | 單 片 機 | DSP技術 | MCU技術 | IC 設計 | IC 產業(yè) | CAN-bus/DeviceNe |
在線求教!關于在C中斷子程序里嵌入?yún)R編結果的討論 |
| 作者:qqkevin 欄目:單片機 |
大家請看這段中斷子程序 sbit USB_MOSI=P0^6; sbit USB_CLK=P0^7; void USB_int(void) interrupt 0 using 3{ flag=1; #pragma ASM JNB USB_CLK,BE MOV C,USB_MOSI CLR A RLC A MOV P1,A BE: NOP #pragma ENDASM } 或者: void USB_int(void) interrupt 0 using 3{ flag=1; #pragma ASM LOOP: JNB USB_CLK,LOOP MOV C,USB_MOSI CLR A RLC A MOV P1,A #pragma ENDASM } 匯編的編譯結果: ; void USB_int(void) interrupt 0 using 3{ RSEG ?PR?USB_int?P0 USING 3 USB_int: ; SOURCE LINE # 9 ; flag=1; ; SOURCE LINE # 10 SETB flag ; #pragma ASM ; ; JNB USB_CLK,BE JNB USB_CLK,BE ; MOV C,USB_MOSI MOV C,USB_MOSI ; CLR A CLR A ; RLC A RLC A ; MOV P1,A MOV P1,A ; BE: BE: ; MOV A,#0FH MOV A,#0FH ; #pragma ENDASM ; ; } ; SOURCE LINE # 22 RETI ; END OF USB_int 少了中斷的的堆棧操作PUSH還有POP,而且我用仿真器一看,但中斷來了的時候,FLAG是置1了,但是潛入的匯編根本就不運行,根本就不會把A送到P1口去. 不知大家之前遇見這個問題沒有?我很想知道究竟是什么回事,已經(jīng)困繞我很久了,請大蝦前輩們指教指教. 注:本中斷子程序的功能是使用單片機來模擬EEPROM的SPI功能,接收USB音頻芯片發(fā)送過來的數(shù)據(jù)的.USB_CLK的周期為16us.MOV P1,A只是用來檢測該中斷程序有無正確執(zhí)行的一個標志. |
| 2樓: | >>參與討論 |
| 作者: qqkevin 于 2006/1/4 14:26:00 發(fā)布:
怎么沒人進來 我頂``` |
|
|
|
| 免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |