Re: Polling和Interrupt可否同時存在?
|
||||
---|---|---|---|---|
新會員
|
感謝回答~ Orz
再請問一下,用PIC16也是一樣嗎?
發表於: 2005/12/8 17:12
|
|||
|
Re: Polling和Interrupt可否同時存在?
|
||||
---|---|---|---|---|
版主
|
Ans 1 : 因為是使用C18 Compiler, 所以只適用於 PIC18Fxxxx的元件。
Ans 2: 當然可以,只是浪費中斷響應時間及一些RAM 而已。 Ans 3: 可以在 PICmicro 18C MCU Family Reference Manual 的第十章有詳細的說明,資料可自網站下載或直接向 Microchip要這本書,很厚的一本。 http://ww1.microchip.com/downloads/en/DeviceDoc/39500a.pdf
發表於: 2005/12/8 11:13
|
|||
|
Re: Polling和Interrupt可否同時存在?
|
||||
---|---|---|---|---|
版主
|
這要取決於是否用C或Assembly來寫程式,如果是C18寫程式的話不管高、低優先權中斷 C18 都會將 W , BSR , STATUS 三個暫存器存起來。但使用組合語言時是不一樣的,高優先權中斷 W, BSR , STATUS 會自動存入 SHADOW 暫存器裡,返回時只要用 RETFIE FAST 就可以自 SHADOW 暫存器裡取回。
但在低優先權中斷時這三個暫器 W,BSR,STATUS就必須自行存到RAM裡。 範例部分可以參考 : C:\Program Files\Microchip\MPASM Suite\Template\Object 裡的檔案
;******************************************************************************
發表於: 2005/12/8 10:05
|
|||
|
Re: Polling和Interrupt可否同時存在?
|
||||
---|---|---|---|---|
高級會員
|
Hi~~cason!
就如你所想的一樣... 如果中斷中有使用到W暫存器... 那內容就會被更改囉! 通常做法是一進入中斷就要先儲存W的內容! 要返回前再叫回來~~ 當RCREG暫存器的內容被傳出後... RCIF就會自動清為"0"~~
發表於: 2005/12/7 20:09
|
|||
|
Re: Polling和Interrupt可否同時存在?
|
||||
---|---|---|---|---|
新會員
|
抱歉~ 插個花
請問如果程式被中斷之後,暫存器W會被改掉嗎? 還是會自動回到中斷前的狀態? 如果W會被改掉是不是要自己先找個位址存起來,中斷要結束時在存回去哩? 還有如果UART使用中斷接收,是不是可以確定每一次只有一筆資料到達,收完之後還需不需要重複確認RCIF哩?
發表於: 2005/12/7 17:42
|
|||
|
Re: Polling和Interrupt可否同時存在?
|
||||
---|---|---|---|---|
高級會員
|
感謝版主大大的回答....
那我了解了!
發表於: 2005/12/6 14:41
|
|||
|
Re: Polling和Interrupt可否同時存在?
|
||||
---|---|---|---|---|
版主
|
可以的,UART 的發送用polling很平常,但UART的接收最好就用中斷來接收
發表於: 2005/12/6 14:30
|
|||
|
Polling和Interrupt可否同時存在?
|
||||
---|---|---|---|---|
高級會員
|
如題...請教一下!
在同一個程式中是否可同時存在這兩種方式?!(PIC18F2X2) ex: [功能] A/D轉換後,透過RS232送給電腦接收.... 電腦接收完畢回傳一訊號給PIC..... PIC再傳新資料! [做法] A/D使用到五個通道(輪流轉換並傳出結果至PC,之後用Interrupt等待電腦給訊號,收到訊號後再傳新的五筆資料,類推...) A/D每個通道的資料是否已傳送出去用Polling來判斷! 請問這樣的寫法OK嗎?
發表於: 2005/12/6 11:09
|
|||
|