TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado 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...
-
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:
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.
-
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.
-
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:
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...
-
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
-
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)
-
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:
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.
-
Tienes razón, la segunda opción no vale
-
: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:
-
jejeje, quien sabe en que estaba pensando, cuando puse eso, :lol: definitivamente buena por esa nocturno