Autor Tema: que tipo de valor devuelve kbd_getc ( ) ?  (Leído 6327 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado fastyx

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 353
que tipo de valor devuelve kbd_getc ( ) ?
« 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!!

Desconectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5552
    • Picmania by Redraven
Re: que tipo de valor devuelve kbd_getc ( ) ?
« Respuesta #1 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.

Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania

Desconectado fastyx

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 353
Re: que tipo de valor devuelve kbd_getc ( ) ?
« Respuesta #2 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.

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
Re: que tipo de valor devuelve kbd_getc ( ) ?
« Respuesta #3 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.

Desconectado fastyx

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 353
Re: que tipo de valor devuelve kbd_getc ( ) ?
« Respuesta #4 en: 18 de Agosto de 2006, 12:51:41 »
gracias nocturno por contestar . ahora queda claro!!! :-/


 

anything