Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: fastyx en 17 de Agosto de 2006, 21:02:27
Título: cerradura electronica con teclado
Publicado por: fastyx en 17 de Agosto de 2006, 21:02:27
Amigos : necesito si alguien me puede indicar donde puedo leer como guardar un numero a traves de un teclado en la eeprom de un pic , y despues comparar el numero que se ingrese al teclado con el de la eeprom y en funcion de eso un evento .
los que lei tienen lcd que no es mi caso y me marea un poco... :D
tambien me resulta confuso esto : c=kbd_getc(); no la puedo ubicar para leer lo que es ...
no se si getc() esta orientado al lcd o me estoy perdiendo algo
desde ya gracias
Título: Re: cerradura electronica con teclado
Publicado por: Luis_Chogi en 17 de Agosto de 2006, 21:18:16
De la libreria KBD del CCS.
//// KBDD.C //// //// Generic keypad scan driver //// //// //// //// kbd_init() Must be called before any other function. //// //// //// //// c = kbd_getc(c) Will return a key value if pressed or /0 if not //// //// This function should be called frequently so as //// //// not to miss a key press. ////
Es decir que c=kbd_getch(c) sirve para el teclado y no para la LCD, dale una leida a la libreria y encontraras este texto.
Saludos.
Título: Re: cerradura electronica con teclado
Publicado por: fastyx en 17 de Agosto de 2006, 21:49:48
gracias por la aclaracion chogi ,voy a buscar esa libreria y la voy a leer!
Título: Re: cerradura electronica con teclado
Publicado por: vszener en 18 de Agosto de 2006, 17:01:34
Para matizar, las librerias se encuentran en la carpeta 'Drivers', normalmente se instala en la siguiente dirección: C:\Archivos de programa\PICC\Drivers
Suerte!!! :wink:
Título: Re: cerradura electronica con teclado
Publicado por: fastyx en 18 de Agosto de 2006, 21:06:43
gracias vzener por responder !!!
aunque no lo puedo hacer andar :lol:
te paso el codigo a ver que pasa ...
#include <vs_clave.h> // en este archivo direcciono hacia kbd3x4.c
led = 1 ;delay_ms (500 ) ; led = 0 ; delay_ms (500 ) ; led = 1 ;delay_ms (500 ) ; led = 0 ; delay_ms (500 ) ; led = 1 ;delay_ms (500 ) ; led = 0 ; delay_ms (500 ) ; //debugg
while ( true )
{ char c ; led = 1 ;
for( ; ; ) { //bucle... do { //espera hasta... c = kbd_getc( ); } while( c == 0 ) ; //...pulsar una tecla if ( c == '1' ) led = 0 ; } } }
Título: Re: cerradura electronica con teclado
Publicado por: vszener en 19 de Agosto de 2006, 08:36:01
Veo que tienes activado el timer0, el timer2, el conversor, supongo que tanto trisx como portx estaran definidos....
¿cual es el error concreto? haber si el desbordamiento de algun timer, o la mala colocacion del teclado hace que no te funcione correctamente.
Tu codigo enciende un led (o pone la variable, que no veo declarada, a 1) y despues si s epulsa por teclado el '1' se pone a 0 y ya no se puede cambiar mas de estado ya que esta en un bucle infinito.
Date cuenta que la instruccion
Código: C
do
{//espera hasta...
c = kbd_getc();
}
while( c ==0);//...pulsar una tecla
Espera hasta pulsar una tecla por el teclado, quizas los timers se desborden antes d epulsarse dicha tecla...