Autor Tema: Duda sobre saltos de página  (Leído 1615 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado antoniof

  • Moderadores
  • PIC24F
  • *****
  • Mensajes: 729
Duda sobre saltos de página
« en: 19 de Mayo de 2005, 17:59:00 »
Coloco aqui esta duda que me han enviado por privado por si a alguien le interesa.

QUISIERA SABER SI ME PUEDES AYUDAR ON LO SIGUIENTE. ESTOY TRABAJANDO CON UN PIC16F877A Y SE ME ACABAO EL ESPACIO EN EL BANCO0 PARA LINEAS DE PROGRAMA. COMO HAGO PARA SEGUIR EN EL BANCO3 EN LA POSICION 1A0H POR EJEMPLO. AGRADEZCO DE ANTEMANO TU COLABORACION. GRACIAS.

Bueno vamos al tema. Si te has quedado sin memoria de programa en la página cero y quieres seguir en la tres, debes tener cuidado porque si tienes subrrutinas en la página 0 que vayas a llamar desde la 3 vas a tener que hacer algunas cosillas extra. Si es simplemente un salto "inocente" hacia la página tres pues simplemente cargas en el pclath los 2 bits más significativos de la dirección de salto y luego haces un goto lo que sea:

**************
PAGINA1
**************

....
....
....
;ahora quieres saltar a la página tres a la dirección 1A0H que tienes etiquetada como por ejemplo
;salto_tres
movlw b"00011000";Estos dos bits a uno indican la página 3
movwf PCLATH
goto salto_tres ;saltas a la dirección 1A0H de la página tres que en realidad es la dirección 19A0H (13 bits)

después si quieres llamar a alguna subrrutina que se encuentre en alguna página distinta a la que estés, por ejemplo estás en la página tres y la subrrutina está en la página 1 con la etiqueta salto_uno, pues debes hacer lo siguiente:

movlw b"00001000";Página 1
movwf PCLATH
call salto_uno ;

cuando se termina la subrrutina, la orden "return" carga de nuevo los 13 bits completos del pc y vuelve a la página 3 automáticamente

Con esto espero haberte aclarado la duda.

Saludos.


 

anything