Página 1 de 1

Interrupção em outras páginas da memória

MensagemEnviado: 26 Fev 2009 13:24
por ÁgioFelipe
Pessoal, estou programando em assembly o 16f877A e surgiu uma dúvida: Se estou em alguma página da memória de programa diferente da page0, uma interrupção é gerada e retornada normalmente?

Re: Interrupção em outras páginas da memória

MensagemEnviado: 27 Fev 2009 13:36
por evertonsilva
ÁgioFelipe escreveu:Pessoal, estou programando em assembly o 16f877A e surgiu uma dúvida: Se estou em alguma página da memória de programa diferente da page0, uma interrupção é gerada e retornada normalmente?



Quando a interrupção é "gerada" vc deve tratar os indicadores de programa, status...

ex:

org 0x0004
PAGE0
MOVWF W_TEMP
SWAPF STATUS,W
CLRF STATUS
MOVWF STATUS_TEMP
MOVF PCLATH, W
MOVWF PCLATH_TEMP
CLRF PCLATH
PAGESEL PAGE0


;SEU CODIGO AQUI


MOVF PCLATH_TEMP, W
MOVWF PCLATH
SWAPF STATUS_TEMP,W
MOVWF STATUS
SWAPF W_TEMP,F
SWAPF W_TEMP,W
RETFIE


As variáveis W_TEMP ,STATUS_TEMP ,PCLATH_TEMP armazenam os valores na entrada da interrupção para serem recuperadas mais tarde...

Nunca esqueça tambem de tratar as chaves de interrupções, global, flags entre outros..

[]'s

MensagemEnviado: 28 Fev 2009 10:12
por ÁgioFelipe
Sim, mas to querendo saber se a interrução é gerada normalmente em qualquer página da memória.

MensagemEnviado: 28 Fev 2009 15:39
por evertonsilva
ÁgioFelipe escreveu:Sim, mas to querendo saber se a interrução é gerada normalmente em qualquer página da memória.


normal... em qualquer pagina..