• slider image 442
  • slider image 483
  • slider image 484
  • slider image 485
  • slider image 486
  • slider image 487
:::


Browsing this Thread:   1 Anonymous Users






Re: 請問關於 在一個中斷過程中防止觸發另一中斷的問題
#2
版主
版主


查看用戶資訊
不會吧!你在外部中斷程式裡執行兩個 PRINTF( ) 與 Delay 3.5 Second 那還要中斷做什麼? 建議程式流程重新寫過,中斷程式裡只要處理一下就出來,其它就交給主程式處理就好了。

發表於: 2006/8/14 11:43
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


請問關於 在一個中斷過程中防止觸發另一中斷的問題
#1
新會員
新會員


查看用戶資訊
小弟用的是pic18f452 的. 最近小弟卡在一個問題上

就是在外部中斷被觸發時,如果同時rs232 也被觸發的話,就會當掉,我有設外部中斷為高中斷優先權,rs232 中斷為低中斷優先,(#priority ext,rda)但是在設定前和設定後好像沒有明顯分別.還是會當掉

另外我曾天真的在外部中斷副程式裡把rs232 中斷disable 掉,等到中斷結束後回到主程式再把它enable 回來,結果還是如果在外部中斷過程中有rs232 中斷觸發訊號的話,就會當掉,
而且是當在enable 那一行(enable 在主程式裡不在外部中斷裡)

我想請教的是在外部中斷副程式執行時,有沒有辦法設定rs232 中斷絕對不被觸發??即使有rs232中斷訊號產生

小弟跟學長討論過還是沒有找到解決的方法, 以下附上2個中斷的程式 ,希望各位大大可以指點一下 謝謝

#int_RDA //rs232 中斷
RDA_isr()
{
// disable_interrupts(INT_EXT);
gets(command);
printf("\n\r RS232 Interupt3 \n\r");
gearL=((int16)command[1]-48)*1000;
gearR=((int16)command[6]-48)*1000;

FBS=(int16)command[10]-48;


cpu_16.bound_max=gearL;
cpu_17.bound_max=gearR;

}


#int_EXT //外部中斷
EXT_isr()
{
printf("\n\r111\n\r");
// disable_interrupts(INT_RDA);
output_bit(PIN_D0,0);//16 pin
output_bit(PIN_D1,0);//17 pin
output_bit(PIN_D2,1);//18 pin
output_bit(PIN_D3,1);//19 pin
delay_ms (2000);
output_bit(PIN_D0,0);//16 pin
output_bit(PIN_D1,0);//17 pin
output_bit(PIN_D2,0);//18 pin
output_bit(PIN_D3,1);//19 pin
delay_ms(1500);
output_bit(PIN_D0,1);//16 pin
output_bit(PIN_D1,1);//17 pin
output_bit(PIN_D2,0);//18 pin
output_bit(PIN_D3,0);//19 pin
cpu_16.bound_max=5000;
cpu_17.bound_max=5000;
counter=0;

FBS=0;
printf("\n\r222\n\r");
}


以下是小弟程式的header 檔

#include <18F452.h>
#device adc=8
#use delay(clock=30000000)
#fuses NOWDT,WDT128,HS, BROWNOUT, BORV20, STVREN, LVP
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)
#priority ext,rda


希望各位大大能指點小弟一下迷津 謝謝m(_ _)m

發表於: 2006/8/12 0:26
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部







You can view topic.
不可以 發起新主題
You cannot reply to posts.
You cannot edit your posts.
You cannot delete your posts.
You cannot add new polls.
You cannot vote in polls.
You cannot attach files to posts.
You cannot post without approval.
You cannot use topic type.
You cannot use HTML syntax.
You cannot use signature.
You cannot create PDF files.
You cannot get print page.

[進階搜尋]


:::

Microchip連結

https://www.facebook.com/microchiptechnologytaiwan/
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=13
https://mu.microchip.com/page/tmu
http://elearning.microchip.com.tw/modules/tad_link/index.php?cate_sn=1
https://page.microchip.com/APAC-PrefCenters-TW.html
http://www.microchip.com/
http://www.microchip.com/treelink
http://www.microchipdirect.com/
http://www.microchip.com.cn/newcommunity/index.php?m=Video&a=index&id=103
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=2
http://www.microchip.com.tw/Data_CD/eLearning/index.html
http://www.microchip.com.tw/RTC/RTC_DVD/
https://www.microchip.com/development-tools/
https://www.youtube.com/user/MicrochipTechnology
[ more... ]

教育訓練中心

!開發工具購買
辦法說明 [業界客戶] [教育單位]
----------------------------------
!校園樣品申請
辦法說明 [教師資格] [學生資格]
----------------------------------