TODOPIC

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
  1. // Keypad layout:
  2. char const KEYS[4][4] = {{'1','2','3','A'},
  3.                          {'4','5','6','B'},
  4.                          {'7','8','9','C'},
  5.                          {'*','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!!! :-/