hola amigos
Tengo un sencillo programa
//////////////////////////////funciones.c//////////////////////////////////////
int pulsadores(int pulsa01,int pulsa02,int pulsa03)
{
int desplaza=1;
int hms;
while(desplaza==1)
{
if(pulsa01==1)
{
delay_ms(300);
if(pulsa01==1)
{
printf("entro");
hms=hms+1;
if(hms>3){hms=0;}
}
}
lcd_gotoxy(1,1);
printf(lcd_putc,"%02d",hms);
if((pulsa02==1) | ( pulsa03==1))
{desplaza=0;}
}
return(hms);
}
el cual es llamado desde una función principal
////////////////////////////////Programa principal////////////////////////7
...
#include pulsa01 input(PIN_A0)
#include pulsa02 input(PIN_A1)
#include pulsa03 input(PIN_A2)
...
#include <cabecera.c>
#include <funciones.c>
...
..
main()
{
..
.
pulsadores(pulsa01,pulsa02,pulsa03);
..
.
}
/////////////////////////////bichero de cabeceras
extern int pulsadores(int pulsa01,int pulsa02,int pulsa03)
Lo que intento es lo siguiente;
en vez de hacer un bucle en la función principal y llamar desde ahi a la otra función, cosa que ya he probado y funciona, he intentado meter el bucle dentro de función a llamar, de forma que cuando llamas a la función con este bucle permanece dentro de la función hasta que la condicion que evalua no se cumpla, entonces saldrá de la función.
Dentro de este bucle hay un evaluar tecla pulsada, si se evalua tecla "P1"incrementa digito en el lcd, basicamante un contador, pero si se pulsa otra tecla sale del bucle y por tanto de la función.
En el programa ,encontre un problema, si comento dentro de la función
la instrución while, y dejo solo el if funciona,
¿cual es el por que? de que no funcione?
Un saludo.