Autor Tema: problema con salto de pagina en 16f874a  (Leído 2762 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado pietrodilaccua

  • PIC10
  • *
  • Mensajes: 46
problema con salto de pagina en 16f874a
« en: 09 de Diciembre de 2005, 11:51:00 »
HOLA AMIGOS,
TENGO UN PROGRAMA FUNCIONANDO EN UN 16F874A, PERO A MEDIDA QUE LO HE MEJORADO LLEGUE  CASI A LA POSICION 7FF ( FIN PRIMERA PAGINA) DE LA MEM DE PROGRAMA,  AHORA QUIERO INCORPORAR UNA SUBRUTINA QUE POR SU EXTENSION SOBREPASA ESTA DIRECCION Y SE EXTIENDE MAS ALLA DE LA 800 (SEGUNDA PAGINA ), EL PROBLEMA ES QUE NO LOGRO DIRECCIONARLA CON LOS "CALL" O LOS "GOTO".  CUANDO LA LLAMO O SALTO DESDE LA PRIMERA PAGINA A LA SUBRUTINA ANTEPONGO UN " BSF  PCLATH,3" PARA DIRECCIONAR LA PAGINA, PERO AL AJECUTAR EL PROGRAMA Y LLAMAR A LA SUBRUTINA, NO LO HACE.

EXISTE ALGUNA FORMA EN ESPECIAL PARA HACER ESTO???. Y COMO DEBERIA SER??

UN SALUDO A TODOS

PIETRODILACCUA.

Desconectado Azicuetano

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1020
    • Aplicaciones Electrónicas en Alicante.
RE: problema con salto de pagina en 16f874a
« Respuesta #1 en: 09 de Diciembre de 2005, 12:13:00 »
Hola pietrodilaccua.

Hay muchas tácticas para paginar (unas más elegantes que otras) pero... con esta no tendrás ningún problema. No es la más óptima pero la efectividad es de un 100%.

Cuando desde la 1ª página del pic hagas una llamada a alguna función de la 2ª página, hazlo con fcall.

De esta forma la comodidad es extrema y en el PCLATH siempre se activarán los bits correspondientes, ya sea llamando a la función o cuando volvemos de ella.

Codigo:
fcall   macro subroutine_name
   local here
   lcall subroutine_name
   pagesel here
here:
   endm



Espero, que por lo menos, hasta que te hagas un buen sistema de paginación con el que trabajes cómodo, te pueda servir esto.

PD: Si quieres profundizar más en el tema...

http://www.piclist.com/techref/microchip/pages.htm

A leer se ha dicho, jeje.

Un saludo desde Alicante.

Desconectado pietrodilaccua

  • PIC10
  • *
  • Mensajes: 46
RE: problema con salto de pagina en 16f874a
« Respuesta #2 en: 12 de Diciembre de 2005, 06:21:00 »
hola azicuetano,  buena solucion la sugerida, te la agradezco, aunque como  lo decias, existen varias. Finalmente la que opte por  usar la directiva PAGESEL antes del CALL o GOTO pero..., ---ESTO ES MUY IMPORTANTE ---- antes de retornar a la primera pagina poniendo a cero el bit3 del pclath y luego RETURN.  
      se supone que esto deberia ser automatico y del stack recuperar los 13 bits anteriores al CALL con la direccion en la primera pagina, pero en la practica  no ocurre asi. por lo tanto antes de regresar es imperativo redirecciorar los bist del pclath.

muy agradecido mi amigo,  un saludo afectuosa  pietrodilaccua

Desconectado PIC_ELECTRON

  • PIC10
  • *
  • Mensajes: 3
Re: RE: problema con salto de pagina en 16f874a
« Respuesta #3 en: 06 de Septiembre de 2009, 14:47:29 »
hola azicuetano,  buena solucion la sugerida, te la agradezco, aunque como  lo decias, existen varias. Finalmente la que opte por  usar la directiva PAGESEL antes del CALL o GOTO pero..., ---ESTO ES MUY IMPORTANTE ---- antes de retornar a la primera pagina poniendo a cero el bit3 del pclath y luego RETURN.  
      se supone que esto deberia ser automatico y del stack recuperar los 13 bits anteriores al CALL con la direccion en la primera pagina, pero en la practica  no ocurre asi. por lo tanto antes de regresar es imperativo redirecciorar los bist del pclath.

muy agradecido mi amigo,  un saludo afectuosa  pietrodilaccua



Una pregunta,si uso la directiva DT "FGTRGDFG", y a su contenido(entre las comillas),lo accedo con ADDWF PCL,1,como resuelvo el tema de clarear el PCLATH,si efectuo un regreso a la PAGINA 0 ,que es donde se hizo la llamada a esta subrutina,ubicada en pagina 1!!


 

anything