Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: fastyx en 18 de Agosto de 2006, 09:10:13
Título: que tipo de valor devuelve kbd_getc ( ) ?
Publicado por: fastyx en 18 de Agosto de 2006, 09:10:13
Amigos : necesito saber que tipo de valor devuelve la funcion c = kbd_getc ()
desde ya gracias!!
Título: Re: que tipo de valor devuelve kbd_getc ( ) ?
Publicado por: RedPic en 18 de Agosto de 2006, 10:11:09
Dependiendo de la librería Kbd.c que uses te devolverá una cosa u otra, pero en general puedes apostar por:
char kbd_getc(void);
Te devolvera una variable tipo char que a su vez esta enumerada de entre estos valores, o algunos similares, dependiendo del teclado concreto que muestree la librería.
Código: C
// Keypad layout:
charconst KEYS[4][4]={{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}};
En este caso he modificado la libreria kbd.c que encontré y que era para un tecldo 4x3 y lo hice para un teclado 4x4.
Título: Re: que tipo de valor devuelve kbd_getc ( ) ?
Publicado por: fastyx en 18 de Agosto de 2006, 11:22:25
gracias por contestar red !
la duda que yo tengo es: cuando se apreta el 0 como se diferencia del 0 que da el kbd_getc() cuando no se apreta tecla?
loque estoy haciendo es : se apreta tecla , guardo valor en var 1 , se apreta tecla , guardo valor en val2,
defino code = var1 * 10 + var2 , para que si se tipeó 45 haga 40 + 5 . despues traigo el valor del codigo de la eeprom y
if ( code == code_eeprom ) evento1 // codigo correcto else evento2 // codigo incorrecto para hacer esto me tengo que asegurar que la tecla apretada devuelva un entero , no un ascii, esa era mi duda.
Título: Re: que tipo de valor devuelve kbd_getc ( ) ?
Publicado por: Nocturno en 18 de Agosto de 2006, 12:35:28
Te devolverá un ascii, pero lo puedes convertir fácilmente a entero así: code = (var1-'0') * 10 + (var2 -'0')
ya que no hay diferencia entre un ASCII y un Entero.
Sólo que los valores están en una tabla y los dígitos están ordenados de menor a mayor, por eso al restar el código del '0' estás situando tu valor al comienzo de los dígitos enteros.
Título: Re: que tipo de valor devuelve kbd_getc ( ) ?
Publicado por: fastyx en 18 de Agosto de 2006, 12:51:41
gracias nocturno por contestar . ahora queda claro!!! :-/