TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: guille339682 en 03 de Abril de 2005, 10:53:00
-
Saludos Amigos del PIC 16f87x
Necesitaria una Rutina que
Salve Registros Importantes para una INTERRUPCION
"PUSH y POP" .ya que la que uso no anda bien.
Desde ya Muchas GRACIAS.guille
nuevosrumbossiglo21@hotmail.com
-
Cita:
Saludos Amigos del PIC 16f87x
Necesitaria una Rutina que
Salve Registros Importantes para una INTERRUPCION
"PUSH y POP" .ya que la que uso no anda bien.
Desde ya Muchas GRACIAS.guille
guille.alva@gmail.com
-
El unico registro que se guarda tras la interrupcion de forma automatica es el PC, por lo que puede ser necesario guardar el registro de estado por ejemplo.
Y despues de una interrupción, es necesario resetear los flag de interrupción, pues no se borran.
Espero haberte sido de ayuda.
-
aqui tienes la rutina que hago tras una int espero te sirva.
MOVWF W_TEMP ;RESPALDA W
SWAPF STATUS,W ;RESPALDA
MOVWF ST_TEMP
codigo de int .........................
MOVF W_TEMP,W
SWAPF ST_TEMP,W ;VALOR ORIGINAL DE STATUS
MOVWF STATUS ;SIN AFECTARLO
Saludos
-
Escrito originalmente por squallmx
aqui tienes la rutina que hago tras una int espero te sirva.
MOVWF W_TEMP ;RESPALDA W
SWAPF STATUS,W ;RESPALDA
MOVWF ST_TEMP
codigo de int .........................
MOVF W_TEMP,W
SWAPF ST_TEMP,W ;VALOR ORIGINAL DE STATUS
MOVWF STATUS ;SIN AFECTARLO
Saludos
El codigo de squallmx mejorado
En el codigo de int .................
SWAPF ST_TEMP,W ;VALOR ORIGINAL DE STATUS
MOVWF STATUS ;SIN AFECTARLO
swapf W_TEMP,1 ;no afecta a STATUS
swapf W_TEMP,W ;W=valor original, no afecta a STATUS
porq lo hice? en el codigo int ... original W termianaba con el valor de STATUS, y su valor original se perdia.
Gracias squallmx por tu rutina