while(True){
// Se lee la tecla
k=tecla_time();
/*
* Aca reviso que si la tecla que se presiono no sea la misma que antes, como el while se repite MUCHAS veces
* mientras alguien tiene el dedo en el teclado, necesito solo discriminar una sola, si detecta en cada paso del while
* la misma tecla entonces no hace nada.
*/
if(ultimopresionado != k ){
/*
* De ser distinta la tecla entra aca... Aca me centro en si esa tecla me interesa o no....
* Si es un '\0' (ninguna tecla presionada) simplemente salgo, sino verifico si es un numero que son los que me interesan
* Si quisiera agregar una tecla de letra con otra funcionalidad podria agregarlo en un else de este if
*/
if ( k >= '0' && k<='9'){
/*
* Como es un numero lo guardo como un numero, asi es mas simple su conversion, a no ser
* que necesites explicitamente guardarlo como caracter
*/
cadena1[j]=k-'0';
// Aumento el indice para ocupar el proximo lugar del array
j++;
}
/*
* Esta es la rutina de conversion, unicamente funcionaria cuando se completó el array
* Podes observar que la condicion para que entre es que j supero el numero maximo de valores
*/
if(j==sizeof cadena1){
// Pongo a 0 mi variable asi puedo operar, por si es que habia algun valor antes
numerocadena=0;
/*
* Paso por cada digito, lo multiplico por 10 y luego lo sumo
* Esto lo verias de la siguiente forma, por ejemplo si tuviera 1,2,3,4
* Paso 1: numerocadena = 1
* Paso 2: Al multiplicarlo por 10, me queda 10 y le suma el 2, quedando 12
* Paso 3: numerocadena = 123
* Paso 4: numerocadena = 1234
*/
for(i=0;i<sizeof cadena1;i++) {
numerocadena *= 10;
numerocadena += cadena1[i];
}
// Finalmente imprimo el resultado
lcd_gotoxy(1,1);
printf(lcd_putc
,"%Lu",numerocadena
);
// Comienza de nuevo a tomar datos
j=0;
}
}
/*
* Lo ultimo que se presiono se guardo en k, por lo tanto necesito actualizar este
* valor para que la misma tecla no vuelve a entrar
*/
ultimopresionado = k;
}// while
}// main