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


Browsing this Thread:   1 Anonymous Users




(1) 2 »


想請問中斷
#1
新會員
新會員


查看用戶資訊
INTSUB1:
MOVWF W_TEMP SWAPF STATUS,W MOVWF STATUS_TEMP
DECFSZ COUNT0,F
GOTO ISR_END1 COMF PORTC,0
MOVLW .5 MOVWF COUNT0
ISR_END1:
BCF PIR1,TMR1IF
CLRF TMR1H CLRF TMR1L
SWAPF STATUS_TEMP,W MOVWF STATUS
SWAPF W_TEMP,F SWAPF W_TEMP,W
RETFIE
請問一下中斷最後都會有
RETFIE
它的值是等中斷結束在跳回
還是直接就回去中斷點
我有一點疑惑的是
重設TIMER1就應該重新計時了
可是如果程式跑到 RETFIE
還沒計時完 那會等計時完在跳回嗎
我有哪裡搞錯了
因為上面的程式
他進入中斷就先備份資料
之後取補數
就又還原了
有點搞不清楚

發表於: 2007/2/13 1:41
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 想請問中斷
#2
新會員
新會員


查看用戶資訊
INTSUB1:
MOVWF W_TEMP

SWAPF STATUS,W

MOVWF STATUS_TEMP

DECFSZ COUNT0,F

GOTO ISR_END1

COMF PORTC,0

MOVLW .5

MOVWF COUNT0

ISR_END1:

BCF PIR1,TMR1IF

CLRF TMR1H

CLRF TMR1L

SWAPF STATUS_TEMP,W

MOVWF STATUS

SWAPF W_TEMP,F

SWAPF W_TEMP,W

RETFIE

發表於: 2007/2/13 1:43
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 想請問中斷
#3
資深會員
資深會員


查看用戶資訊
我一直有個問題
看過好幾個人在中斷中會執行swapf
就如樓上所寫的
進入中斷後先SWAPF再丟入備份暫存檔中
離開後再從暫存檔中SWAPF到狀態暫存器
而最後再SWAPF兩次到W

我想請問為何要做SWAPF的動作
為啥不直接MOVF MOVWF 就好?
雖然說我從沒做過SWAPF也都沒出問題過
但就是有疑問...
產生中斷後就要趕快把事情做完趕快離開
為啥要多花幾個指令時間做交換?!

剛剛看了樓上的程式
雖然我不懂你想問的意思
不過我看到一個怪地方
你執行了
COMF PORTC,0
這一行的意思是把PORTC的值全部反相再放到W
下一行你就把5放到W
就把上一行的值改掉了

如果你的意思是要把RC0反相的話
那你應該執行BTG PORTC,0
COMF是反相整個暫存器
BTG 是反相一個位元

發表於: 2007/2/13 8:41
木亟缶夬金戔
彳艮缶夬金戔
走召缶夬金戔
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 想請問中斷
#4
初級會員
初級會員


查看用戶資訊
因為如果你用SWAP的指令執行完這種指令他是不會影響到你的任何旗標的狀態,如果你用MOVF這種指令他是會影響到你的Z旗標的

發表於: 2007/2/13 8:57
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 想請問中斷
#5
資深會員
資深會員


查看用戶資訊
了解
謝了
我想應該是我沒用過PIC16
我用PIC18都是一進中斷就用MOVFF備份STATUS
離開時先用MOVF放回W再回存STATUS所以才沒出問題
PIC16沒有MOVFF還真不方便...

發表於: 2007/2/13 9:04
木亟缶夬金戔
彳艮缶夬金戔
走召缶夬金戔
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 想請問中斷
#6
新會員
新會員


查看用戶資訊
我是想問 我po的程式是進入中斷後的內容
進入時我們會先備份資料
之後作中斷時所需的程式
隻後重設中斷
還原
但是我使用中斷計時
時間點我不會算ㄟ
就是哪一個程式還在中斷
哪裡中斷結束跳回中斷點04h
還是哪裡有再等待中段時間的
DECFSZ COUNT0,F
這是我判斷所設的中斷次數
還沒到我就繼續執行isr_end
但他跑完裡面的程式就又進入04h
那我假如計時10分鐘
跑完那些程式不用到一秒吧
剩餘的時間 跑哪了
一直在疑惑中斷
有誰可以跟我解式詳細的中斷用法

發表於: 2007/2/13 13:03
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 想請問中斷
#7
高級會員
高級會員


查看用戶資訊
之前也有同樣的疑問..也發現過的確會影響到Z Flag..
原來是movf這個指令影響呀....謝謝

中斷的用法大致上是這樣的...

org 0000h ; 程式開始執行的位址
goto main;
org 0004h ; 中斷位址 (A)
goto isr_func;
//--------------------------------
isr_func: ; 中斷副程式
mPush ; 備份暫存器
... ; 計時重置
...
mPop ; 暫存器還原
RETFIE ; 回到中斷下一行指令繼續執行 (B)

//--------------------------------
main:
.....
movlw d'55'; ----> 時間計時溢位跳到中斷向量位址0004 (A)
movwf bReg0; --> (B)
.....
goto main

timer是一個模組..只要設定好相關暫存器..
他會自己計時..然後中斷條件成立..
會產生一個中斷信號給mcu..然後mcu才跳到0004h執行..

計時時間與時脈&預除器有關..
datasheet寫的很清楚可以參考...

備份與還原的動作...
是不希望中斷程式改變掉主程式正在執行的資料...
以上..

發表於: 2007/2/13 13:48
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 想請問中斷
#8
新會員
新會員


查看用戶資訊
多謝你的解答
我會在想一想的

發表於: 2007/2/14 0:11
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 想請問中斷
#9
資深會員
資深會員


查看用戶資訊
還有要注意一點:
W_TEMP , STATUS_TEMP ( 或其他名稱?)變數 要放在 0x70 以後的位址
那裡為 通用位址 ( BANK 0 , 1 , 2 , 3 都可以存取 )
如放在其他位址 , 則要注意 BANK 的切換 ( 太麻煩了! )

發表於: 2007/2/15 20:33
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 想請問中斷
#10
中級會員
中級會員


查看用戶資訊
參照:

Beee 寫到:

如放在其他位址 , 則要注意 BANK 的切換 ( 太麻煩了! )


怎么會麻煩?BANK的切換基本上是避免不了的!

發表於: 2007/2/16 2:53
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... ]

教育訓練中心

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