TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: cerc151 en 14 de Marzo de 2005, 13:00:00

Título: Ayuda para llamar funciones en C
Publicado 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
Título: RE: Ayuda para llamar funciones en C
Publicado por: roc364 en 14 de Marzo de 2005, 18:25:00
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!!!! Sonrisa


saludos!!
Título: RE: Ayuda para llamar funciones en C
Publicado por: mariosaul en 14 de Marzo de 2005, 20:39:00
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
Título: RE: Ayuda para llamar funciones en C
Publicado por: Nocturno en 15 de Marzo de 2005, 03:28:00
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.
Título: RE: Ayuda para llamar funciones en C
Publicado por: cerc151 en 15 de Marzo de 2005, 05:55:00
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