buenas, tengo 3 botones y quiero usarlos para configurar un menu en mi lcd, el problema que tengo es que si dejo precionado el boton ejecuta toda la secuencia y no me da tiempo para precionar otro boton, y si le pongo delay se me hace lento la programacion, si me pueden ayudar un favor.
dejo mi programación, necesariamente tiene que ser por el puerto C.
while(1){
PIN1=INPUT(PIN_C3);
if(j<4&&r==0&&PIN1==0){
lcd_putc("\f ACCEDIENDO ");
for(i=0;i<15;i++){
lcd_gotoxy(i,2);
lcd_putc("*");
delay_ms(50);
}
if(PIN1==0){
lcd_putc("\f PASSWORD ");
i=0;
while(i<4){
while(PIN1==0){
PIN1=INPUT(PIN_C3);
}
while(PIN2==0){
PIN2=INPUT(PIN_C4);
}
while(PIN3==0){
PIN3=INPUT(PIN_C5);
}
IF(PIN1==1&&PIN2==1&&PIN3==1){
while(PIN1==1&&PIN2==1&&PIN3==1){
PIN1=INPUT(PIN_C3);
PIN2=INPUT(PIN_C4);
PIN3=INPUT(PIN_C5);
}
if(PIN1==0&&PIN2==1&&PIN3==1){
dato[i]='1';
i++;
lcd_gotoxy(i+3,2);
lcd_putc('*');
DELAY_MS(500);
}
if(PIN1==1&&PIN2==0&&PIN3==1){
dato[i]='3';
i++;
lcd_gotoxy(i+3,2);
lcd_putc('*');
DELAY_MS(500);
}
if(PIN1==1&&PIN2==1&&PIN3==0){
dato[i]='5';
i++;
lcd_gotoxy(i+3,2);
lcd_putc('*');
DELAY_MS(500);
}
}
}
for(i=0;i<4;i++){
clave[i]=read_eeprom(i);
}
if( dato[0]==clave[0] && dato[1]==clave[1] && dato[2]==clave[2] && dato[3]==clave[3]){
lcd_gotoxy(5,1);
printf(lcd_putc,"\f Accediendo ");
for(i=0;i<15;i++){
lcd_gotoxy(i,2);
printf(lcd_putc,"*");
delay_ms(50);
}
r=1;
}
else{
lcd_putc("\f Clave incorecta ");
j++;
delay_ms(2000);
}
}
}
}
es para usar contraseña
2° tambien tengo otro problema quero mostrar valores con mi lcd y me sale borroso y paradeante
DO{
SET_ADC_CHANNEL(0);
DELAY_US(10);
RADIO=READ_ADC();
RADIO=RADIO*2/1023.0;
write_eeprom(6,RADIO);
PRINTF(LCD_PUTC,"\f RADIO");
PRINTF(LCD_PUTC,"\n %f ",RADIO);
PIN1=INPUT(PIN_C3);
MEN=0;
i++;
r=0;}WHILE(PIN1==1);
}
algunas ayudas por favor.