Autor Tema: cerradura electronica con teclado  (Leído 3533 veces)

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

Desconectado fastyx

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 353
cerradura electronica con teclado
« 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
                                                     

Desconectado Luis_Chogi

  • PIC10
  • *
  • Mensajes: 44
Re: cerradura electronica con teclado
« Respuesta #1 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.

Desconectado fastyx

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 353
Re: cerradura electronica con teclado
« Respuesta #2 en: 17 de Agosto de 2006, 21:49:48 »
gracias por la aclaracion chogi ,voy a buscar esa libreria y la voy a leer!

Desconectado vszener

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2395
Re: cerradura electronica con teclado
« Respuesta #3 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:
· Nos vemos en los bares!!!!!
· Mi Blog: Aqueronte

Desconectado fastyx

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 353
Re: cerradura electronica con teclado
« Respuesta #4 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

///PROGRAMA
 main ( )
{
   char c ;
   setup_adc_ports(AN0);
   setup_adc(ADC_CLOCK_INTERNAL);
   setup_timer_0 ( RTCC_INTERNAL ) ;
   setup_timer_1 ( T1_DISABLED ) ;
   setup_timer_2 ( T2_DIV_BY_1 , 250 , 1 ) ;
   disable_interrupts ( INT_TIMER2 ) ;
   disable_interrupts ( INT_RDA ) ;
   disable_interrupts ( GLOBAL ) ;
   setup_ccp1(CCP_PWM);

   trisa = 0b00000111 ; porta = 0b00000000 ;
   trisb = 0b00001111 ; portb = 0b00000000 ;
   trisc = 0b00111000 ; portc = 0b00000000 ;
 
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 ;
       }     
   }
}

Desconectado vszener

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2395
Re: cerradura electronica con teclado
« Respuesta #5 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
  1. do
  2.            {                           //espera hasta...
  3.              c = kbd_getc( );
  4.            }
  5.          while( c == 0 ) ;           //...pulsar una tecla
Espera hasta pulsar una tecla por el teclado, quizas los timers se desborden antes d epulsarse dicha tecla...


Suerte!!! :wink:
· Nos vemos en los bares!!!!!
· Mi Blog: Aqueronte


 

anything