Autor Tema: mensage de error  (Leído 5350 veces)

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

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
Re: mensage de error
« Respuesta #15 en: 15 de Septiembre de 2009, 17:28:05 »
tienes razon.no me habia dado cuenta del error.hay que poner BANK1.
pero ahora que lo he puesto.me salen mas errores.como los de la imagen de abajo.

Montando mi primera impresora 3D (Raprep Prusa i3)

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: mensage de error
« Respuesta #16 en: 15 de Septiembre de 2009, 17:35:56 »
Soy de la idea que empieces el programa desde cero y que vayas agregando porciones poco a poco... hay varios detalles raros.  ;-)

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
Re: mensage de error
« Respuesta #17 en: 15 de Septiembre de 2009, 18:05:38 »
ufff.desde cero.jeje.
con el trabajito que me ha costao.de todas formas acabo de darme cuenta de otro error.y ya no me salen tantos.pero todavia me sale uno relacionado con los fsr.
haber si lo encuentro.

lo que no entiendo es a que se refiere el mensage.[PIC 16 MEMORY] ........... de arriva.pero bueno.ya aberiguare..saludos.
Montando mi primera impresora 3D (Raprep Prusa i3)

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
Re: mensage de error
« Respuesta #18 en: 15 de Septiembre de 2009, 19:18:17 »
por finnnn.parece que ya no me salen errores.crucemos los dedos.

al parecer tenia varios fallos.los mas comunes eran registros que estaban en el banco 0,y los leia en el banco 1.asi que cuando manejaba los FSR.pues resulta que apuntaba a direcciones inexistentes o prohibidas.

pero el mas importante.es que en el programa principal.hay que deshabilitar las interrupciones al principio y volver a habilitarlas al final.si no,al regresar a la posicion de memoria que dejo el programa.datos que tenian un valor.cambiaban y desfarataba todo el asm.

para que no suceda esto ,supongo que tendria que guardar dichos datos en los push.para luego restaurarlos con el pop.
cuando depure mas el asm.intentare realizar esto para ver los resultados.
Montando mi primera impresora 3D (Raprep Prusa i3)

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: mensage de error
« Respuesta #19 en: 15 de Septiembre de 2009, 20:40:20 »
jeje te salvaste de empezarlo desde cero  :D

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
Re: mensage de error
« Respuesta #20 en: 19 de Septiembre de 2009, 16:12:18 »
pues si.jeje.

ahora que he solucionado el problema deshabilitando las interrupciones.me he dado cuenta de que no voy a poder usar ese sistema.
ya que si las deshabilito.resulta que si el programa principal si es muy largo y no ha terminado antes de que se vuelva a pruducir la interrupcion por recepcion de usart.
pues nunca o casi nunca el programa entra en la interrupcion y no se actualizan los datos de la usart para usarlos en el programa principal.

por eso he decidido no deshabilitar las interrupciones en el programa principal.para dar prioridad a la usart.
pero entonces me siguen saliendo los mensages de error anteriores.asi que voy a intentar solucionarlo si puedo.

acabo de incluir algunas lineas mas a los push y pop.para que no se pierdan datos al retornar el programa.pero parece que salen errores del mismo tipo pero con diferentes direcciones.

abajo lo pego:


PUSH            MACRO               ;macro para salvar registros antes de una llamada a interrupcion   
               BANK0
            movwf   W_TEMP               
               swapf   STATUS,W
            
               movwf   STATUS_TEMP         
               clrf    STATUS               
               movfw   PCLATH               
                 movwf   PCLATH_TEMP
               clrf    PCLATH

            MOVFW   FSR
            MOVWF   FSR_TEMP
            
               ENDM

POP            MACRO               ;macro para restaurar registros   despues de una llamada a interrupcion
               BANK0
            movfw   PCLATH_TEMP         
               movwf   PCLATH
               swapf   STATUS_TEMP,W 
             
               movwf   STATUS
               swapf   W_TEMP,F         
               swapf   W_TEMP,W
            MOVFW   FSR_TEMP
            MOVWF   FSR
         
            
               ENDM
Montando mi primera impresora 3D (Raprep Prusa i3)

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
Re: mensage de error
« Respuesta #21 en: 20 de Septiembre de 2009, 12:53:08 »
por finnnnnn.  estaba ya que me tiraba de los pelos.valla paliza de asm.

ya estaba arto del mensage:

[PIC16 MEMORY]PC=0X00D0 Attemp to read unimplemented memory location 0x008F ignored. lo pongo asi para que se encuentre facil en el buscador.
aunque la localizacion de memoria 0x008F no era el unico mensage de error.tambien estaban 0x0090,0x0095,0x0096,0x0097,0x009A,etc.
se que estas direcciones daban error porque como dice el mensage,no estan implementadas en el pic.es decir que no se pueden usar.solo tenemos que ver el datasheet para entenderlo.

lo que no entiendo es el PC=0XD0 ya que en el programa esta linea era un NOP.y no habia ninguna instrucion que pudiera meter ningun dato en lor registros
que he mencionado anteriormente.
todo el problema estaba en que al regresar al programa principal despues de una interrupcion.habia un registro que no era actualizado al valor originario a la inerrupcion.
este registro es el PCL.
yo pensaba que el valor de este registro era guardado en el Stack Pointer.y que guardando tambien el valor del PCLATH ya tenia asegurado el retorno de la
interrupcion sin que hubiere problemas.
pero no se que sera.igual se me esta desbordando la pila.aunque me lo diria el ISIS creo.

he modificado los PUSH y POP para corregir el error.haber si esto rula ya de una vez.

PUSH            MACRO               ;macro para salvar registros antes de una llamada a interrupcion   
               BANK0
            movwf   W_TEMP               
               swapf   STATUS,W
            movwf   STATUS_TEMP 
               clrf    STATUS               
               movfw   PCLATH               
                 movwf   PCLATH_TEMP
               clrf    PCLATH
            swapf   PCL,W
            movwf   PCL_REG
            ENDM

POP            MACRO               ;macro para restaurar registros   despues de una llamada a interrupcion
               BANK0
            movfw   PCLATH_TEMP         
               movwf   PCLATH
               swapf   STATUS_TEMP,W 
            movwf   STATUS
            swapf   W_TEMP,F         
               swapf   W_TEMP,W
            swapf   PCL_REG,W
            movwf   PCL
            ENDM
Montando mi primera impresora 3D (Raprep Prusa i3)

Desconectado simson1978

  • PIC10
  • *
  • Mensajes: 3
mensage de error
« Respuesta #22 en: 28 de Septiembre de 2009, 16:07:53 »
hola a todos.....soy nuevo en el foro y tambien intentando programar pics....lo primero que he tratado de hacer es simular en proteus un que lee el puerto a y escribe en el puerto b......hice el programa en mplab y funciona correctamente pero al compilarlo en proteus aparecen dos errores....uno de ellos error 131: processor type is undefined.....como soy completamente nuevo en el tema no se de que se trata por que he seguido los pasos de los manuales encontrados de forma fiel....me pregunto si es incopatibilidad entre las versiones de mplab y proteus que uso

isis 7.2v profesional sp2
mplab ide 7.10

de todas formas me gustaria que alguien me ayudara por que en esto momentos me detiene este problema para avanzar


 

anything