TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: manuelroin24 en 27 de Septiembre de 2007, 21:20:47
-
Una sola pregunta amigotes.
si hago esto me resulta bienIF( input(PIN_A0) ) {
output_bit(PIN_A1,1);
}
pero si hago esto no funciona
DO{
output_bit(PIN_A1,1);
}WHILE(input(PIN_A0));
o es que la sentencia WHILE no permite el input();
-
Pues yo lo eh hecho asi y no tengo problemas
No creo que tenga diferencia con do{}while();, deberia de funcionar.
suerte
-
Podrias probar con el Do - While pq a mi no me funciona para nada simplemente ejecuta la funcion sin tomar en cuenta la condicion.
-
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
-
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.
-
Perfecto amigo sali de mis dudas, en la ultima parte me aclaraste la duda , debe ser el cansancio mental. Muchas gracias!!
-
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