TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: ALFREDOSKY en 15 de Enero de 2014, 19:04:28

Título: Condicional de una funcion
Publicado por: ALFREDOSKY en 15 de Enero de 2014, 19:04:28
Un saludos a todos, bueno estoy aprendiendo c, y estoy revisando varios libros orientados y no orientados a pic's; bueno mi duda es sobre la lógica de la sentencia 'if-else', y sobre el valor lógico de una función, es decir, si yo tengo una función: unsigned int comando_de_entrada() , que me devuelve valores enteros de acuerdo a los parámetros ingresados por teclado o leídos por un puerto del PIC, ademas si escribo:

                                                          if(comando_de_entrada())
                                                            {hacer algo;
                                                             }

como se interpreta esta parte del código?, entiendo que la condición del 'if' tiene un valor TRUE o FALSE, pero, ¿como es que la función comando_de_entrada() asume uno de estos valores?(TRUE o FALSE); sucede con el solo hecho de ejecutarse para ser TRUE?, si no se ejecuta es FALSE?, porfavor alguien que me pueda ayudar, seria de gran soporte
Título: Re: Condicional de una funcion
Publicado por: MerLiNz en 15 de Enero de 2014, 20:09:13
Es asi:

si devuelve 0 es FALSE
si devuelve algo distinto de 0 es TRUE
Título: Re: Condicional de una funcion
Publicado por: AngelGris en 15 de Enero de 2014, 21:13:19
  También te puede interesar evaluar cualquier otro valor devuelto por tu función, por ejemplo...

Código: C
  1. if (comando_de_entrada() == 5)
  2. {
  3.   hacer cosas
  4. }
Título: Re: Condicional de una funcion
Publicado por: ALFREDOSKY en 16 de Enero de 2014, 17:50:44
Gracias por sus respuestas, en el caso del uso del modulo USART de algunos PIC's, cuando escribo:

unsigned int trabajar_con_usart()
{
  if (!BusyUsart())
  {
    tarea1;
  }
  return 0;
}

if(trabajar_con_usart)
{
 tarea2;
}

¿Quiere decir que cuando el modulo USART este ocupado la funcion 'trabajar_con_usart' retornara el valor '0'? y no se ejecutará la 'tarea 2'? y si en el caso 'else' de la sentencia 'if' contenida en la función no coloco return 0, que valor devuelve la función?
Título: Re: Condicional de una funcion
Publicado por: AngelGris en 16 de Enero de 2014, 19:07:09
Gracias por sus respuestas, en el caso del uso del modulo USART de algunos PIC's, cuando escribo:

unsigned int trabajar_con_usart()
{
  if (!BusyUsart())
  {
    tarea1;
  }
  return 0;
}

if(trabajar_con_usart)
{
 tarea2;
}

¿Quiere decir que cuando el modulo USART este ocupado la funcion 'trabajar_con_usart' retornara el valor '0'? y no se ejecutará la 'tarea 2'? y si en el caso 'else' de la sentencia 'if' contenida en la función no coloco return 0, que valor devuelve la función?

 Antes que nada, intenta colocar el código con la opción GeSHi en el editor de mensajes.
Exacto, si devuelve 0, tarea2 no es ejecutada. En el compilador XC... si no colocas sentencia "return" a una función que tiene que devolver un valor, te generará o un warning o un error indicando que una función que debería devolver un valor, no lo está haciendo.
Título: Re: Condicional de una funcion
Publicado por: KALLITOS en 16 de Enero de 2014, 19:15:22
Hola paisano MIRA ESTE HILO (http://www.todopic.com.ar/foros/index.php?topic=17017.0), te aclará algunas de tus dudas.

saludos.
Título: Re: Condicional de una funcion
Publicado por: ALFREDOSKY en 17 de Enero de 2014, 12:55:20
Ahh ok AngelGris, soy nuevo en el foro, no conocía esa herramienta... :mrgreen: en adelante pondré el código con el GeSHi; y gracias por tu respuesta ya me van quedando claras mis dudas.

KALLITOS gracias por compartir el enlace, me va a servir de mucho  :-/ empezare a leerlo desde ya!  ;-)
Título: Re: Condicional de una funcion
Publicado por: camhost1 en 18 de Enero de 2014, 10:15:31
Hola amigo, cuando declaras una función y necesitas procesar datos para posteriormente ejecutar una tarea le agregas un RETURN (tu valor). Con eso aseguras que dentro del condicional se ejecute la tarea que esperas. Saludos
Título: Re: Condicional de una funcion
Publicado por: ALFREDOSKY en 20 de Enero de 2014, 11:56:56
Hola camhost1 gracias por el dato, estoy leyendo todo lo relacionado a esta sentencia y las maneras de retornar valores que posteriormente me servirán en otras funciones o tareas, gracias nuevamente!