TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: WORBVU en 24 de Abril de 2005, 08:11:00
-
Si quiero en un momento dado hacerle un reset a un PIC16F877A por software con un goto 0x00 (vector de reset) que pasa con el STACK (la pila) si este llamado se hace dentro de una rutina CALL?. Hay alguna forma de borrar el STACK (la pila)?
Les agradezco toda la ayuda que me puedan brindar
-
Pues no.
La pila la gestiona internamente el PIC y no es accesible. Si saltas al inicio (o a otro lugar) desde una subrrutina sin el uso de retfie o retlw, la pila se desbordará irremediablemente.
Lo que puedes hacer es lo siguiente:
call subrrutina;Llamas a la subrrutina que sea, y sales de ella con un retfie
goto 0x00; Saltas desde aqui al inicio.
-
Hola,
a mi me parece buena idea, pero quizá para evitar anidamiantos llamaria a una subrutina y crearia un bucle infinito (con el WDT activado) así será el propio pic el que resetea, gestiona la pila y todo lo necesario.
Un saludo desde Barcelona.
-
Muy buena idea
Es una forma de asegurarse que el pic no ara el tonto por motivos de la pila.