Autor Tema: breakpoint por modificacion de registro (PROTEUS-VSM)  (Leído 2704 veces)

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

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
breakpoint por modificacion de registro (PROTEUS-VSM)
« en: 13 de Julio de 2012, 14:46:28 »
hola estoy realizando una simulacion con el PROTEUS-VSM.y tengo el problema de que hay una direccion de memoria que aparece un valor que no deberia estar ahi.
es posible que aparezca despues de una interrupcion.y en un determinado momento.me gustaria saber si hay alguna forma de parar el programa ante el evento
del cambio de este registro hubicado en la ram.
de esta forma lograre saber que es lo que esta ocasionando esta modificacion.
Montando mi primera impresora 3D (Raprep Prusa i3)

Desconectado Diego E.

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1086
Re: breakpoint por modificacion de registro (PROTEUS-VSM)
« Respuesta #1 en: 13 de Julio de 2012, 15:30:47 »
Hola amigo, si estás viendo la variable en un watch Window puedes configurarle un "Watchpoint condition" clic derecho sobre la variable, ahí le configuras que pare el programa cuando la variable cambia de valor.

Saludos.

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
Re: breakpoint por modificacion de registro (PROTEUS-VSM)
« Respuesta #2 en: 13 de Julio de 2012, 16:14:48 »
muchas gracias por la informacion.no sabia que se pudiera añadir una direccion de la memoria al wach.pero no encuento lo que dices.
eso no sera para el mpsim?
Montando mi primera impresora 3D (Raprep Prusa i3)

Desconectado Diego E.

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1086
Re: breakpoint por modificacion de registro (PROTEUS-VSM)
« Respuesta #3 en: 13 de Julio de 2012, 17:44:12 »
Hola, cargas la variable en el watch y luego das click derecho y te aparece la opción

Saludos.

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
Re: breakpoint por modificacion de registro (PROTEUS-VSM)
« Respuesta #4 en: 13 de Julio de 2012, 19:28:33 »
ya consegui hacer lo que decias.y funciona.el programa se para al modificarse el registro.
esta forma de simulacion directa con el proteus solo la utilize una vez.por eso no supe encontrar las opciones.yo suelo usar el MPLAB con el ISIS.

asi que aunque ha funcionado tu solucion.no he logrado encontrar el fallo.ya que el codigo no lo puedo ver en menotecnico.porque el hex lo tengo
cargado dentro del pic.

seria magnifico tener esta opcion en el proteus desde el MPLAB.
Montando mi primera impresora 3D (Raprep Prusa i3)

Desconectado Diego E.

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1086
Re: breakpoint por modificacion de registro (PROTEUS-VSM)
« Respuesta #5 en: 13 de Julio de 2012, 22:32:52 »
Porqué no cargas en el pic el archivo .cof ?, de esta forma se puede depurar

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
Re: breakpoint por modificacion de registro (PROTEUS-VSM)
« Respuesta #6 en: 14 de Julio de 2012, 18:42:38 »
gracias .no sabia ni que era ese tipo de archivo.ya he logrado ver por donde va el fallo.resulta que cuando se
produce una interrupcion,guardo los registros para poder recuperarlos posteriormente.

pues hay algo que se me escapa a la comprension.yo guardo el registro BSR en un registro temporal.pero no se si esto
es recomendable.ya que depende del valor del BSR el registro temporal puede estar hubicado en cualquier banco de ram.

de ahi que me aparezca un valor en una posicion de memoria que no le pertenece.ya que cuando quiero guardar el valor
en un registro temporal del banco 7.en mi caso lo esta haciendo en el banco 1.


ejemplo:

movff   BSR,TEMP_BSR

esto seria idoneo si BSR=7 ya que estaia guardando el valor 7 en un registro ubicado en el banco 7.
pero si el valor es diferente,ya no lo estaria guardando en el banco 7.

asi que solo se me ocurre reservar una posicion de memoria de cada banco para este registro.por ejemplo la xff
y asi no estare poniendo en conflicto otras direcciones compartidas por otros registros.

a no ser que haya una memoria que se acceda desde cualquier banco seleccionado.

asi que no se como salvar el contenido del BSR.sin modificar bancos no deseados.
Montando mi primera impresora 3D (Raprep Prusa i3)

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
Re: breakpoint por modificacion de registro (PROTEUS-VSM)
« Respuesta #7 en: 14 de Julio de 2012, 20:07:44 »


bueno.por el momento he logrado que el programa me funcione.

tenia estas instrucciones para salvar algunos registros al entrar en una interrupcion.

        movff   BSR,HI_TEMP_BSR
        movwf   HI_W_TEMP

        ahora he puesto estas:

        movff   BSR,HI_TEMP_BSR
        movlb   0x07
        movwf   HI_W_TEMP
     
se ve que guardaba el contenido de W en el registro HI_TEMP_BSR.que esaba direccionado al banco 1 por el BSR.
ya me lo guarda en el banco 7.

pero todabia no me convence lo de guardar el conteido de BSR en un registro sin poder direccionar porque el que direcciona
es el propio registro direccionador.

no he hecho mas practicas para verificar el buen o mal funcionamiento de esto.tendre que probarlo.
Montando mi primera impresora 3D (Raprep Prusa i3)

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
Re: breakpoint por modificacion de registro (PROTEUS-VSM)
« Respuesta #8 en: 16 de Julio de 2012, 12:50:52 »
ya encontre la opcion de utilizar la ventana watch del PROTEUS VSM-MPLAB

es un icono con la imagen de un ojo.hacemos clic y ya podemos configurar la forma en como pararse el programa ante la modificacion de un registro.
Montando mi primera impresora 3D (Raprep Prusa i3)

Desconectado Diego E.

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1086
Re: breakpoint por modificacion de registro (PROTEUS-VSM)
« Respuesta #9 en: 16 de Julio de 2012, 14:06:51 »
Me alegra, esta es una excelente herramienta.

Saludos.