Autor Tema: 16f628 SE DESBORDA EL PROGRAMA  (Leído 2360 veces)

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

Desconectado CMARINV2006

  • PIC10
  • *
  • Mensajes: 6
16f628 SE DESBORDA EL PROGRAMA
« en: 18 de Agosto de 2006, 13:36:22 »
HOLA A TODOS, TENGO UN PROGRAMA CON EL PIC 16F628 Y FUNCIONA CORRECTAMENTE, LO QUE PASA ES QUE SI LE AGREGO UNAS LÌNEAS MAS DE CODIGO QUEDA MAS LOCO QUE UNA CABRA, NO ENTIENDO LA RAZON, HE HECHO PROGRAMAS MUCHO MAS EXTENSOS CON EL 16F84 Y ME HAN FUNCIONADO BIEN, ADJUNTO UN TROZO DE CODIGO, SI ALGUIEN ME AYUDARA LES AGRADECERIA.

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: 16f628 SE DESBORDA EL PROGRAMA
« Respuesta #1 en: 18 de Agosto de 2006, 14:08:38 »
Hola.
Este no es el lugar adecuado para publicar este mensaje. Deberia haber sido publicado en: http://www.todopic.com.ar/foros/index.php?board=1.0
Si el moderador de este sub-foro no lo mueve, lo movere pronto.

Con respecto a tu programa:
La tabla esta generando esos errores, porque al agregar lineas de codigo, la tabla queda mas alla de las 256 primeras posiciones de la memoria de programa del PIC, y salta incorrectamente dentro de la tabla.

Solución:

Mover esto:
Código: ASM
  1. tablita   addwf    pc,1     ;tabla que contiene el precio del minuto X 10
  2.           retlw    .10
  3.           retlw    .15
  4.           retlw    .20
  5.           retlw    .25
  6.           retlw    .30
  7.           retlw    .35
  8.           retlw    .40
  9.           retlw    .45
  10.           retlw    .50

y ponerlo debajo de esto:

Código: ASM
  1. org     0
  2.           goto    inicio
  3.           org     5
  4.  
  5.           org     4    
  6.           goto    interr

Tiene que quedar asi:

Código: ASM
  1. ...
  2.           ...
  3. ;============================================================================================
  4.  
  5.           org     0
  6.           goto    inicio
  7.           org     5
  8.  
  9.           org     4    
  10.           goto    interr  
  11.  
  12. tablita   addwf    pc,1     ;tabla que contiene el precio del minuto X 10
  13.           retlw    .10
  14.           retlw    .15
  15.           retlw    .20
  16.           retlw    .25
  17.           retlw    .30
  18.           retlw    .35
  19.           retlw    .40
  20.           retlw    .45
  21.           retlw    .50
  22.            
  23.          
  24. interr    btfss   intcon,2
  25.           goto    sale
  26.           nop
  27.           ...
  28.           ...

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 CMARINV2006

  • PIC10
  • *
  • Mensajes: 6
Re: 16f628 SE DESBORDA EL PROGRAMA
« Respuesta #2 en: 01 de Octubre de 2006, 14:55:41 »
OK YA ENTENDI, SIN EMBARGO ME GUSTARIA SABER QU TANTO CODIGO PUEDO AGREGAR DONDE DIJISTE, Y SI HAY UNA MANERA DE DIRECCIONAR MANUALMENTE LOS BANCOS PARA NO TENER ESTOS PROBLEMAS

GRACIAS HOMBRE

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: 16f628 SE DESBORDA EL PROGRAMA
« Respuesta #3 en: 02 de Octubre de 2006, 10:43:05 »
Hola CMARINV2006.

Puedes agregar tantas tablas siempre y cuando no excedan las primeras 256 posiciones de la memoria del PIC.
Es decir que la maxima posicion en la que puedes poner las tablas asi sin nada es 0xFF.

Si deseas ubicar las tablas en otro lugar, pues tendras antes que cargar manualmente el valor del PCLATH antes de hacer la llamada la tabla.

Aquí Maunix da 3 posibles soluciones al tema:

Manejo de tablas

Aquí yo doy otra posible solución al problema(con ciertas limitaciones).

Varias tablas en una misma subrutina(gestor de tablas)

Cualquier cosa preguntas.

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.


 

anything