TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: cerc151 en 14 de Marzo de 2005, 13:00:00
-
Hola a todos.
Tengo un problema con llamar funciones en el compilador PICC de HI-TECH.
EL problema es el siguiente: cuando quiero llamar una dentro de otra me aparece un error de recurcividad.
Ejemplo: void funcion1 (void)
{
funcion2();
}
void funcion2 (void)
{
funcion1();
}
Si alguien sabe como puedo hacer una funcion recursiva en este compilador por favor diganme como, o sino, diganme como puedo hacer un reset al PIC desde software.
Gracias a todos
-
Hola cerc151, creo que los compiladores C para Pic no soportan la recursividad. (nunca lo probe pero me parecio leerlo por ahi).
Interesante la pregunta del reset desde software...
se me ocurre usando un pin de salida, que ponga a 0 el pin de reset, pero me parece medio "pampeana" la solucion!!!! 
saludos!!
-
si explicas que es exactamente lo que tratas de hacer podemos tratar de cambiar tu algoritmo a uno iterativo, muchas veces se puede lograr, pero no siempre
-
Con respecto a la recursividad, como dice mariosaul, es probable que pueda "traducirse" tu algoritmo a uno iterativo.
Respecto al Reset hay dos formas:
a) necesitarás modificar el hard, puesto que consiste en poner un transistor en la patilla reset gobernado por un pin de salida, como anuciaba roc364.
b) utilizando el WatchDog. Es un dispositivo que resetea el pic si no se le da un refresco continuamente. Por tanto, podrías poner ese refresco en el bucle principal de tu programa, y eliminarlo cuando quieras resetear.
-
Gracias a todos por su ayuda ya estoy reescribiendo el codigo, con respecto a lo del watchdogtimer me lo podrian explicar mejor? ya que nunca lo he usado. Si pueden poner un ejemplo se los agradeceria mucho
Gracias