TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: manuelroin24 en 27 de Septiembre de 2007, 21:20:47

Título: Duda con while en CCS
Publicado por: manuelroin24 en 27 de Septiembre de 2007, 21:20:47
Una sola pregunta amigotes.

si hago esto me resulta bien
Código: vb.net
  1. IF( input(PIN_A0) ) {
  2.                              
  3.                                output_bit(PIN_A1,1);
  4.                            
  5.                              }
pero si hago esto no funciona
Código: vb.net
  1. DO{
  2.        
  3.       output_bit(PIN_A1,1);
  4.  
  5.      }WHILE(input(PIN_A0));

o es que la sentencia WHILE no permite el input();
Título: Re: Duda con while en CCS
Publicado por: Rulo en 27 de Septiembre de 2007, 21:33:42

     Pues yo lo eh hecho asi y no tengo problemas
 
Código: CSS
  1. while(input(pin_b5))
  2.       {
  3.       }

     No creo que tenga diferencia con  do{}while();, deberia de funcionar.

              suerte
Título: Re: Duda con while en CCS
Publicado por: manuelroin24 en 27 de Septiembre de 2007, 21:37:53
Podrias probar con el Do - While pq a mi no me funciona para nada simplemente ejecuta la funcion sin tomar en cuenta la condicion.
Título: Re: Duda con while en CCS
Publicado por: Rulo en 27 de Septiembre de 2007, 21:48:54


        pues acabo de modificar un programa, cambiando el while()  por do{}while();, y al parecer funciona igual.


            por que no pones un poco mas de codigo para ver si hay algo raro por ahi.

              Saludos
Título: Re: Duda con while en CCS
Publicado por: Rulo en 27 de Septiembre de 2007, 22:20:10


       pues como lo veo, con el while() {}  primero compara, y si no se cumple la condicion no realiza lo que esta dento de las llaves, se lo salta.


            con do {} while(); primero realiza una vez lo que hay dentro de las llaves, y despues compara, si se cumple la condicion, sigue repitiendo el proceso, si no se cumple se sale del bucle.

    espero te sirva.
 
                   Saludos.
Título: Re: Duda con while en CCS
Publicado por: manuelroin24 en 27 de Septiembre de 2007, 22:57:11
Perfecto amigo sali de mis dudas, en la ultima parte me aclaraste la duda , debe ser el cansancio mental. Muchas gracias!!
Título: Re:Duda con while en CCS
Publicado por: alexmorales en 24 de Marzo de 2018, 13:30:08
hola buen dia amigos soy nuevo en el foro tuve un problema asi de hecho habia copiado la funcion desde un codigo que estaba funcionando y de tanto indagar me di cuenta que lo que me afectaba era los fuses fast_io y fixe_io tengo #use FIXED_IO( A_outputs=PIN_A3,PIN_A2 ) y #use standard_io(b)
cuando colocaba esta funcion para leer el timer1

      Tiempo = 0;
      while(Tiempo < 10000 )                    // Detectar el primer pulso alto de 10 mseg. 
      {
       while (REC_RF == 0);                      // Está bajo y espera que suba
        set_timer1(0);                            // Pone a cero el Timer 1.
       while(REC_RF == 1);                      // Se mantiene en el pulso alto.     
        Tiempo = get_timer1 (); 

de esta manera no me funcionaba

de esta ora manera si funciona

Tiempo = 0;
      while(Tiempo < 10000 )                    // Detectar el primer pulso alto de 10 mseg. 
      {
       while(input(REC_RF) == 0);                      // Está bajo y espera que suba
        set_timer1(0);                            // Pone a cero el Timer 1.
       while(input(REC_RF) == 1);                      // Se mantiene en el pulso alto.     
        Tiempo = get_timer1 (); 

asi si funciona yo tuve que colocar (input (REC_RF)==0)


 ojala les pueda ayudar