Autor Tema: problema con la pila de 16f88  (Leído 1502 veces)

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

Desconectado yipi

  • PIC12
  • **
  • Mensajes: 79
problema con la pila de 16f88
« en: 19 de Julio de 2010, 21:47:33 »
Hola a todos, estoy intentando hacer un programita en c para el 16f88, como compilador uso el CC5X compiler en su version gratuita y lo que pasa es que cuando compilo me da un error indicandome que hay un problema con la pila y por lo que entiendo del mensaje de error (esta en ingles) es que se desborda la pila (la pila del 16f88 tiene 8 niveles), y por lo tanto el programa fallara. Hasta aqui el problema.

Mi duda es la siguiente. Programando en ensamblador los saltos y las llamadas a subrutinas las controlas tu y sabes cuando vas a desbordar la pila, pero cuando escribes en c no sabes los saltos o llamadas que va a crear el compilador, por lo tanto ¿como controlas al escribir el codigo en c para que despues el programa creado por el compilador no desborde la pila?

Gracias.

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: problema con la pila de 16f88
« Respuesta #1 en: 19 de Julio de 2010, 22:34:16 »
Hola

Normalmente en C y PICs los saltos a subfunciones se traducen a CALLs, por lo que si tienes varias funciones anidadas tendrás una advertencia por desbordamiento de pila.

También debes considerar que las atenciones a interrupciones son como CALLs.

Algunos compiladores insertan muchos CALLs cuando pueden solucionarlo con GOTOs u otras técnicas. Si el compilador que usas es reciente entonces es probable que esto esté pasando.

Te recomiendo HiTech Lite que soporta al PIC16F88 y es un muy buen compilador gratuito.

Desconectado yipi

  • PIC12
  • **
  • Mensajes: 79
Re: problema con la pila de 16f88
« Respuesta #2 en: 20 de Julio de 2010, 17:33:28 »
La verdad es que he estado haciendo cuentas y puede ser que si que se desborde ya  que dentro de una funcion de las que usas siempre sin darte cuenta ya hay llamadas a otras funciones que estan a lo mejor en librerias etc...

De todas maneras que compilador usais vosotros normalmente a la hora de programar los pics y como solucionais problemas como el que me acaba de surgir a mi porque al fin y al cabo a veces no te queda mas remedio que anidar funciones y no sabes lo que va a hacer el compilador despues.

Por supuesto lo mas eficiente es programar en ensamblador aunque no creo que sea lo que hace la mayoria de la gente no?


 

anything