Autor Tema: Problemas con el PCL  (Leído 2415 veces)

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

Desconectado RicardoLopez

  • PIC10
  • *
  • Mensajes: 2
Problemas con el PCL
« en: 04 de Diciembre de 2006, 14:32:48 »
Antes que nada un saludo a todos los integrantes del foro ya que soy nuevo en el mismo.

Mi consulta es porque recién estoy empezando con el 18F452, ya logre hacer un par de pavadas y ahora quería incrementar un contador sumarlo al PCL y saltar dentro de una tabla, para mi gran sorpresa no puedo lograr que funcione y no puedo pescar el problema, les adjunto el código a ver si alguien me puede dar una mano.

PEPE   
    movf    Conta,W
    call      TABLA_A
    incf      Conta,f
    goto     PEPE

TABLA_A      
    addwf   PCL,f
    retlw   .0   ;Si Conta= 0 y 1 salto acá 
    retlw   .1   ;Si Conta= 2 y 3 salto acá
    retlw   .2   ;Si Conta= 4 y 5 salto acá
    retlw   .3   
    retlw   .4

Como pueden notar se repite el salto dos veces en el mismo lugar, cuando lo correcto sería que me devolviera en W el valor que tiene Conta. Esta rutinita en un 16F877 funciona bien por lo que deduzco que los 18F deben manejar distinto el PCL.

Les agradecería una orientación.

Saludos

Ricardo López





Desconectado flacoclau

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1692
    • El Micro Reactor
Re: Problemas con el PCL
« Respuesta #1 en: 04 de Diciembre de 2006, 15:14:15 »
Bueno Ricardo yo tuve el mismo problema y no pude encontrar la falla, al final lo solucioné llamando directamente a la tabla y listo, la verdad lo único que sé es que el pcl trabaja de 2 en 2, osea el bit menos significativo del pcl no cambia nunca, es más ni siquiera está implementado según recuerdo leí en Datasheet.
por lo demás no tengo mucha experiencia con los 18f, creo quien te puede ayudar en esto y entiende mucho es Maunix, que se lo vé poco por estos lados y debe andar bastante ocupado con sus cosas.
bueno saludos y si lo solucionas espero me cuentes que hiciste.
Suerte.
Las personas con buena ortografía me atraen textualmente.

El Micro Reactor

Córdoba capital - Argentina.

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: Problemas con el PCL
« Respuesta #2 en: 04 de Diciembre de 2006, 17:09:41 »
Hola RicardoLopez

Proba asi:

PEPE   
   rlncf      Conta,W
    call      TABLA_A
    incf       Conta,F
   goto        PEPE

TABLA_A     
    addwf   PCL,f
    retlw   .0   ;Si Conta= 0 y 1 salto acá 
    retlw   .1   ;Si Conta= 2 y 3 salto acá
    retlw   .2   ;Si Conta= 4 y 5 salto acá
    retlw   .3   
    retlw   .4

Conta no puede ser > 127.
Saludos.
« Última modificación: 04 de Diciembre de 2006, 17:28:06 por BrunoF »
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.

Desconectado flacoclau

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1692
    • El Micro Reactor
Re: Problemas con el PCL
« Respuesta #3 en: 04 de Diciembre de 2006, 21:16:16 »
ahora no recuerdo pero esa variante la probé y no me funcionó.... 
Las personas con buena ortografía me atraen textualmente.

El Micro Reactor

Córdoba capital - Argentina.

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: Problemas con el PCL
« Respuesta #4 en: 04 de Diciembre de 2006, 22:34:08 »
En el MPLAB SIM funciona bien.
Saludos.
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.

Desconectado RicardoLopez

  • PIC10
  • *
  • Mensajes: 2
Re: Problemas con el PCL
« Respuesta #5 en: 05 de Diciembre de 2006, 15:34:47 »
Les agradezco las respuestas a todos,

BrunoF, la tuya es una solución tipo parche y con limitaciones pero es valida para zafar hasta saber como hacerlo bien, te comento que la probé y funciona bien.

Flacoclau, es tan extraño el comportamiento del PCL en vez de incrementarse de uno en uno al pasar de una instrucción a la siguiente lo hace de dos en dos. Por mas que miro el manual no encuentro nada, y en los ejemplos de ADDWF hay uno con salto en una tabla y es de la manera convencional, acá debe de haber alguna cosa que estamos pasando por alto, yo ya dudo hasta si no será un bug del MPLAB.

Saludos
Ricardo López

Desconectado flacoclau

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1692
    • El Micro Reactor
Re: Problemas con el PCL
« Respuesta #6 en: 06 de Diciembre de 2006, 01:15:49 »
Hola Ricardo: el 18f452 tiene 32 kbytes de memoria con instrucciones de 2 a 4 bytes por lo tanto te pueden llegar a caber cerca de 16 kbytes de instrucciones en un programa como máximo, por lo tanto si la instrucción es de 2 bytes mínimo el pcl te va a cambiar de a dos posiciones, bueno el tema es que releyendo el ds me dí cuenta que si tiene implementado el LSB del PCL, por lo que yo estaba equivocado, pero para la ejecución del programa el LSB siempre está a cero, acá te adjunto una porción del ds donde lo aclara, saludos y suerte.
Las personas con buena ortografía me atraen textualmente.

El Micro Reactor

Córdoba capital - Argentina.


 

anything