Autor Tema: problema con la pila en el pic16f876a(SOLUCIONADO)  (Leído 1887 veces)

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

Desconectado lorcho

  • PIC10
  • *
  • Mensajes: 18
problema con la pila en el pic16f876a(SOLUCIONADO)
« en: 24 de Febrero de 2009, 23:13:42 »
hola, tengo un problema que espero podais ayudarme a resolver. el mplab me da un error "stack overflow executing call instruction" y otra identica con return instruction. el mensaje lo entiendo pero no se donde esta el problema en el programa, por mas que lo intento. tal cual esta el programa no hay problema, pero al añadir algo mas, estilo "nop" al final del programa o una llamada a un proceso en el que solo hay un return da el error. ¿hay alguna forma de vaciar la pila en algun punto del programa ????adjunto el programa, las librerias que uso y el circuito en proteus. es una cerradura con un codigo predefinido en eeprom "2211", al pulsar la tecla asterisco salta a cambiar clave que es donde salta el error. al correr el programa salta a inicio y despues de configuraciones varias hago una llamada a inicio2 que es donde acaba de configurar todo, al final de este proceso no tengo una instruccion de retorno pues el programa del que parti no lo tenia, pero pienso que ahi puede estar el problema.  Pienso que al añadirle otra etiqueta aunque solo tenga una instruccion de retorno desbordo la pila y falla. no se si sera que la llamada al ppo del programa a inicio2 da algun problema por no tener retorno al final. llevo muchos dias parado y mucho tiempo invertido y no paso de aqui. ayuda por favor!!!

el programa esta muy comentado, creo que es muy facil de comprender es "acceso8761.ASM"
« Última modificación: 04 de Marzo de 2009, 22:35:57 por lorcho »

Desconectado Leon Pic

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3610
    • Impresiones en 3D
Re: problema con la pila en el pic16f876a
« Respuesta #1 en: 25 de Febrero de 2009, 00:59:30 »
Hola lorcho. ¿Cuál de todos los programas es?

El problema es muy simple. Te estás exediendo el nivel de pila, que son 8. O sea, puedes poner hasta 8 subrutinas juntas sin antes de haber retornado. Ahora bien, si trabajas con interrupciones, no te olvides que también consume una pila, por lo que ten encuenta esto.
Jesús dijo, yo soy el CAMINO, la VERDAD y la VIDA, nadie llega al PADRE si no es por mi.

Desconectado lorcho

  • PIC10
  • *
  • Mensajes: 18
Re: problema con la pila en el pic16f876a
« Respuesta #2 en: 25 de Febrero de 2009, 09:26:20 »
el programa es acceso8761.asm. entonces el problema puede que empiece al inicio del programa en la llamada a inicio2 que no tiene retorno. luego todas las llamadas que hago las tengo comprobadas pero esa en particular no tiene return y pienso que es donde empieza todo.
gracias por tu respuesta león

Desconectado lorcho

  • PIC10
  • *
  • Mensajes: 18
Re: problema con la pila en el pic16f876a SOLUCIONADO
« Respuesta #3 en: 04 de Marzo de 2009, 22:34:41 »
solucionado, subo el programa por si a alguien le interesa. adjunto circuito de proteus y librerias usadas. hay que añadir la primera clave manualmente grabando la eeprom del pic, en principio son 4 digitos pero se puede modificar para que sean tantos como queramos. desde la posicion 01 de la eeprom a la 04 para 4 digitos. hay que pulsar la tecla asterisco para cambiar clave. un saludo


 

anything