Saludos, estoy iniciandome apenas en esto y estoy realizando apenas mi primer programa en mikroC, estoy haciendo un programa que me permita introducir una clave de 4 digitos, y mostrar por una LCD si la contraseña es correcta o no pero tengo problemas con esta ultima parte
unsigned short cnt=1; // contador
unsigned short pos=0;
unsigned char kp; //Keypad press
unsigned short clave[4];
unsigned short memoria[4]={'1','2','3','4'}; //clave temporal
char txt[6];
// LCD module connections
sbit LCD_RS at RB4_bit;
sbit LCD_EN at RB5_bit;
sbit LCD_D4 at RB0_bit;
sbit LCD_D5 at RB1_bit;
sbit LCD_D6 at RB2_bit;
sbit LCD_D7 at RB3_bit;
sbit LCD_RS_Direction at TRISB4_bit;
sbit LCD_EN_Direction at TRISB5_bit;
sbit LCD_D4_Direction at TRISB0_bit;
sbit LCD_D5_Direction at TRISB1_bit;
sbit LCD_D6_Direction at TRISB2_bit;
sbit LCD_D7_Direction at TRISB3_bit;
// End LCD module connections
// Keypad module connections
char keypadPort at PORTD;
// End of keypad module connections
void main() {
ANSEL = 0;
ANSELH = 0;
TRISD=0xFF;
Lcd_Init();
Keypad_Init();
Lcd_Cmd(_LCD_Clear);
Lcd_Cmd(_LCD_CURSOR_OFF);
Lcd_Out(1, 1,"Introduzca su clave:");
do{
kp= 0;
clave[0]='0';clave[1]='0';clave[2]='0';clave[3]='0';
do{
kp = Keypad_Key_Click();
}while (!kp);
switch(kp){
case 1: kp = '1'; break; // 1 -49
case 2: kp = '2'; break; // 2 -50
case 3: kp = '3'; break; // 3 -51
//case 4: kp = 90; break; // -
case 5: kp = '4'; break; // 4 -52
case 6: kp = '5'; break; // 5 -53
case 7: kp = '6'; break; // 6 -54
//case 8: kp = 90; break; // X
case 9: kp = '7'; break; // 7 -55
case 10: kp = '8'; break; // 8 -56
case 11: kp = '9'; break; // 9 -57
//case 12: kp = 90; break; // Z
//case 13: kp = 81; break; // c/on
case 14: kp = '0'; break; // 0 -48
//case 15: kp = 90; break; // Z
//case 16: kp = 90; break; // Z
default: kp= 0; //HAY QUE CAMBIAR AQUI
}
clave[pos]=kp;
Lcd_Cmd(_LCD_BLINK_CURSOR_ON);
Lcd_Chr(2,cnt,kp);
cnt++;
pos++;
if (cnt==5) {
delay_ms(1000); //AJUSTAR LUEGO ?????
Lcd_Cmd(_LCD_Clear);
if (clave[0]==memoria[0] && clave[1]==memoria[1] && clave[2]==memoria[2] && clave[3]==memoria[3]){
Lcd_Out(2, 1, "bien");
}
}
}while(1);
}
Si alguien pudiera guiarme un poco y quizas hacer alguna sugerencia se lo agradezco.
Y me disculpo si no estoy usando el foro de manera adecuada, es el primer post pero espero estar mucho por este foro a partir de ahora je
Editado:
Bueno ya yo mismo he solucionado luego de buen rato leyendo y revisando, solo era cuestión de definir las variables de la clave y memoria como tipos char.