TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: coronado88 en 17 de Junio de 2016, 15:27:45

Título: Como sumar variales con operaciones matematicas
Publicado por: coronado88 en 17 de Junio de 2016, 15:27:45
buenas estoy tratando indicar mediante selectores y mostrar la suma mediante un 7segmento es para indicar el nivel de agua de un tanque.
consiste en lo siguiente; hay cuatro sensores de  nivel mediante la tabla de la me da  cuando es ful: 0b1111, lleno:0b1110, Medio: 0b1100,
bajo: 0b0001. y quiero que me muestre en el Display el 0 cuando no hay agua 1,2,3,4 .
yo ya hice uno pero con indicadores utilizado leds controla la bomba y me funciono si lo quieren me notifican.
Título: Re:Como sumar variales con operaciones matematicas
Publicado por: coronado88 en 17 de Junio de 2016, 16:12:54
este es http://www.todopic.com.ar/foros/index.php?topic=46450.0
Título: Re:Como sumar variales con operaciones matematicas
Publicado por: KILLERJC en 18 de Junio de 2016, 16:23:59
Supongamos que SW4 es lleno y SW1 es bajo.


Código: C
  1. entrada = input_a();
  2.  
  3. do
  4. {
  5.         temp=0;
  6.         if(bit_test(entrada,3)) temp = 4; break;
  7.         if(bit_test(entrada,2)) temp = 3; break;
  8.         if(bit_test(entrada,1)) temp = 2; break;
  9.         if(bit_test(entrada,0)) temp = 1; break;
  10. }while(0);
  11.  
  12. output_b(temp);

El do..while, es para no usar GOTO, de esa forma al poner el break; se sale del mismo.
Aunque a esto le falta "limpiar" la variable entrada antes. Uno presupone que si SW4 esta activo, es por que SW3,2 y 1 lo estan. Pero puede ocurrir un mal funcionamiento y dejarte con SW4 en 1 por ejemplo y lo demas en 0, y vos pensar que esta lleno con este programa, asi que tenes que agregarle algo que verifique correctamente que se cumpla, otra forma seria probar algo asi:

Código: C
  1. entrada = input_a() & 0xF;
  2.  
  3. for( temp = 0 ; bit_test(entrada,0) ; temp++ ) entrada >>= 1;
  4.  
  5. output_b(temp);

No se si funcionaria pero espero que me entiendas