TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: CEAUGO en 25 de Mayo de 2008, 18:40:17

Título: como hago una condicion con if para limitar un rango???
Publicado por: CEAUGO en 25 de Mayo de 2008, 18:40:17
Hola a todos, ps estoy haciendo un programa que hace una diferencia de voltages dentro de mi programa, y con esta debo limitarla en un rango de voltage para cierta funcion...

lo explico:

hay de pronto un if que me diga que de acuerdo a los valores que esten entre 0.5 y -0.5 entre a este y cumpla una funcion...
espero haberme hecho entender....perdon por la pregunta, y gracias por su atencion...
Título: Re: como hago una condicion con if para limitar un rango???
Publicado por: Gonzalo_BlackHawk en 25 de Mayo de 2008, 19:47:29
Hola CEAUGO, no entiendo bien que quieres hacer, trata de explayarte un poco mas y ser mas especifico, sino tendremos que estar adivinando.

Supongo que lo que quieres hacer es verificar si una variable se encuentra dentro de cierto rango o no, por lo que el código deberá ser:

Código: [Seleccionar]
float Tension;

if ((Tension <= 0.5)&&(Tension >= -0.5)) {
   // Aqui va el código que debe ejecutarse si la variable Tension se encuentra en el rango entre -0,5 a 0,5.
}
else {
   // Aqui va el código que debe ejecutarse si la variable Tension se encuentra fuera del rango.
}

La cuestión es bastante sencilla, por eso no entiendo si es realmente lo que preguntas.

Un saludo.
Título: Re: como hago una condicion con if para limitar un rango???
Publicado por: migsantiago en 25 de Mayo de 2008, 20:23:42
jeje Gonzalo, cuando uno empieza con c, eso que acabas de escribir parece súper difícil  :mrgreen:

Yo hace tiempo también tenía problemas para comparar datos de esa forma, pero con el tiempo se va tomando experiencia.
Título: Re: como hago una condicion con if para limitar un rango???
Publicado por: CEAUGO en 25 de Mayo de 2008, 23:48:45
Hola CEAUGO, no entiendo bien que quieres hacer, trata de explayarte un poco mas y ser mas especifico, sino tendremos que estar adivinando.

Supongo que lo que quieres hacer es verificar si una variable se encuentra dentro de cierto rango o no, por lo que el código deberá ser:

Código: [Seleccionar]
float Tension;

if ((Tension <= 0.5)&&(Tension >= -0.5)) {
   // Aqui va el código que debe ejecutarse si la variable Tension se encuentra en el rango entre -0,5 a 0,5.
}
else {
   // Aqui va el código que debe ejecutarse si la variable Tension se encuentra fuera del rango.
}

La cuestión es bastante sencilla, por eso no entiendo si es realmente lo que preguntas.

Un saludo.
-------------------------------------------------------------------------------------------------------------------
Hola si, lo entendistes bien.....ya lo probe y funciono te agradezco enormemente....muchas gracias exitos...
Título: Re: como hago una condicion con if para limitar un rango???
Publicado por: scientist en 26 de Mayo de 2008, 00:48:14
podria ser asi tambien?

float valor;

if (-0.5=<valor=>0.5){
/////haz lo que tengas que hacer
}else{
///////otra condicion
}

si me equivico sorry
Título: Re: como hago una condicion con if para limitar un rango???
Publicado por: Nocturno en 26 de Mayo de 2008, 02:48:21
Así no funciona, scientist, no puedes meter tres comparaciones en una misma condición.

A mí se me ocurren dos maneras más de hacerlo:

if (abs(valor)<=0.5)

o bien

if ((valor+0.5)<1)
Título: Re: como hago una condicion con if para limitar un rango???
Publicado por: Gonzalo_BlackHawk en 26 de Mayo de 2008, 05:40:47
Hola a todos. Nocturno, me parece que tu primera solución es la mas compacta y la mas adecuada.

No entiendo tu segunda solución, pues no funciona cuando el valor desciende de -0,5, ya que la expresion sigue dando menor que 1, tal vez deberia ser:

Código: [Seleccionar]
if ((abs(Valor)+0.5)<1) {;}
Pero en realidad lo que estas haciendo es plantear la misma solución que la primera, solo que desplazas el punto de comparación por media unidad. Yo creo que has acertado con la primera solución, havbria que ver el ASM, pero seguramente es la mas rápida de ejecutar. Espero sus opiniones.

Saludos gente.
Título: Re: como hago una condicion con if para limitar un rango???
Publicado por: Nocturno en 26 de Mayo de 2008, 05:49:23
Tienes razón, la segunda opción no vale
Título: Re: como hago una condicion con if para limitar un rango???
Publicado por: migsantiago en 26 de Mayo de 2008, 09:39:32
 :shock:

Si la primera propuesta de Nocturno ahorra código en ensamblador, es recomendable publicarla aquí:

Complicando para simplificar
http://www.todopic.com.ar/foros/index.php?topic=18676.0

 :mrgreen:
Título: Re: como hago una condicion con if para limitar un rango???
Publicado por: scientist en 26 de Mayo de 2008, 16:05:21
jejeje, quien sabe en que estaba pensando, cuando puse eso,  :lol: definitivamente buena por esa nocturno