Buenos dias amigos de todopic. necesito de su ayuda. estoy realizando un despachador de agua. y estoy en la etapa del menu y quiero que al presionar el boton de 5 lts, 20 lts. y ok. durante 5 segundos. me envie a un submenu donde me pide una clave y al ser correcta logre entrar al menu para modificar precios y tiempos de llenado.
que el boton de 5 lts. decremente valor
el boton de 10 lts. incremente valor
el pin de ok. realice el cambio de columna.
y al ingresar los 4 digitos al ser correcto ingreso y si es incorrecto regresar al programa principal.
////////////////////////////////////////////////////////////////////////////////////////////////////
#rom 0x2100={4265} // escribir en la memoria eeprom
char dato[4],clave[4]; //dato: almacena los digitos, clave: es la contraseña
int space;
char contra;
////////////////////////////////////////////////////////////////////////////////////////////////////
void ingresar_clave(){
delay_ms(2000);
lcd_putc("\f");
lcd_gotoxy(1,1);
printf(lcd_putc,"Ingresar Clave");
lcd_gotoxy(1,2);
printf(lcd_putc,"*");
lcd_gotoxy(2,2);
printf(lcd_putc,"*");
lcd_gotoxy(3,2);
printf(lcd_putc,"*");
lcd_gotoxy(4,2);
printf(lcd_putc,"*");
contra=0;
space=1;
while(space<5){
if(contra!=0){
dato[space]=contra
if (input(pin_B6)==0){
delay_ms(250);
space++;
}
lcd_gotoxy(space,2); // posicion i de la segunda linea
printf(lcd_putc,"%u",contra);
}
if(input(pin_B5)==0)
{
delay_ms(250);
contra++;
if(contra==9)
{
contra=0;
}
}
if(input(pin_B4)==0)
{
delay_ms(250);
contra--;
if(contra==0)
{
contra=9;
}
}
}
for(space=0;space<5;space++)
clave[space]=read_eeprom(space); //guarda la constraseña en el vector clave
if( dato[0]==clave[0] && dato[1]==clave[1] && dato[2]==clave[2] && dato[3]==clave[3])
{
lcd_putc("\fClave Correcta! ");
delay_ms(1500);
menu();
}
else{
lcd_putc("\fClave incorecta ");
lcd_putc("\n -_- ");
delay_ms(2000);
inicio_programa();
}
}
lo que noto es que al presionar la tecla de corrimiento de columna el el numero que digite anteriomente se repite. ayuda.