Autor Tema: Problema al Usar Flex_Lcd.h  (Leído 12238 veces)

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

Desconectado darck_khronos

  • PIC18
  • ****
  • Mensajes: 493
Re: Problema al Usar Flex_Lcd.h
« Respuesta #15 en: 02 de Octubre de 2009, 22:03:25 »
Que paso ahí!  :shock: No entiendo naa!  :D
ya realize un cambio al puerto b mas que con un teclado de 3x4 si me muestra lo que sucede pero con el de 4x4 nadamas no ahorita subo el codigo para que vean

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Problema al Usar Flex_Lcd.h
« Respuesta #16 en: 02 de Octubre de 2009, 22:06:44 »
Que paso ahí!  :shock: No entiendo naa!  :D
ya realize un cambio al puerto b mas que con un teclado de 3x4 si me muestra lo que sucede pero con el de 4x4 nadamas no ahorita subo el codigo para que vean

:z) Que quisiste explicar?
No contesto mensajes privados, las consultas en el foro

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Problema al Usar Flex_Lcd.h
« Respuesta #17 en: 03 de Octubre de 2009, 01:25:31 »
 :D :D :D

Creo que esto es lo que buscas.

Código: C#
  1. #include <16F876.h>
  2. #fuses XT,NOWDT,NOPROTECT,NOLVP
  3. #use delay(clock= 4000000)        
  4.  
  5. #include <lcd.c>
  6. #include <kbd.c>
  7.        
  8.  
  9. void main() {
  10.    char k;
  11.    int  x;
  12.          
  13.    lcd_init();
  14.    kbd_init();
  15.    port_b_pullups(TRUE);
  16.  
  17.    lcd_putc("\fListo...\n");
  18.                                    
  19.    while (TRUE) {
  20.       k=kbd_getc();
  21.       x=k-48;                             //Conversión numérica
  22.       if(k!=0){
  23.         if(k=='*')  
  24.           lcd_putc('\f');
  25.         else
  26.            lcd_putc(k);             //Imprime carácter
  27.            delay_ms(500);
  28.            printf(lcd_putc,"\f Car=%c",k); //Imprime carácter
  29.            delay_ms(500);
  30.            printf(lcd_putc,"\f Car=%u",k); //Imprime valor ASCII
  31.            delay_ms(500);
  32.            printf(lcd_putc,"\f Num=%u",x); //Imprime valor numérico
  33.            delay_ms(500);
  34.            lcd_putc("\fListo...\n");
  35.       }
  36.    }
  37. }



Saludos
El papel lo aguanta todo

Desconectado darck_khronos

  • PIC18
  • ****
  • Mensajes: 493
Re: Problema al Usar Flex_Lcd.h
« Respuesta #18 en: 03 de Octubre de 2009, 13:31:04 »
Si mas que lo que quiero es que funcione con un teclado de 4x4 que es el que tengo

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Problema al Usar Flex_Lcd.h
« Respuesta #19 en: 03 de Octubre de 2009, 13:40:44 »
Hola.

Pues solo es añadir el escaneo de la otra columna no? y cambiar la matriz.

Saludos
El papel lo aguanta todo

Desconectado darck_khronos

  • PIC18
  • ****
  • Mensajes: 493
Re: Problema al Usar Flex_Lcd.h
« Respuesta #20 en: 03 de Octubre de 2009, 13:43:23 »
por lo mismo agrege la kdb_lib que descargue de Pic Mania pero al parecer entra en conflicto

Desconectado darck_khronos

  • PIC18
  • ****
  • Mensajes: 493
Re: Problema al Usar Flex_Lcd.h
« Respuesta #21 en: 10 de Octubre de 2009, 20:38:19 »
ya hice algunos cambios a mi codigo y aun asi no logro hacer que se muestre algo en la Lcd

Código: C
  1. #include <18f4550.h>
  2. #fuses XT,NOWDT,NOPROTECT,NOLVP     //ordenes para el programador
  3. #use delay (clock=8000000)         //Fosc=4Mhz
  4. #define use_portd_lcd TRUE
  5. //#define use_portb_kbd TRUE
  6. #include <kbd2.c>               //libreria manejo keypad
  7. #include <lcd.c>               //libreria manejo lcd 8bits  
  8. //#use fast_io(B)
  9. char KEY;
  10. void main(void)
  11. {  
  12.    lcd_init();            //inicializa lcd
  13.    lcd_putc("   Electronica");
  14.    set_tris_b(0x00);
  15.    delay_ms(1000);         //...inicial
  16.    do{
  17.    port_b_pullups(true);
  18.    KEY=kbd_getc();
  19.    lcd_gotoxy(1,2);
  20.    printf(lcd_putc,"tecla %c",KEY);
  21.    }while(1);
  22. }


Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Problema al Usar Flex_Lcd.h
« Respuesta #22 en: 10 de Octubre de 2009, 21:51:17 »
El port_b_pullup(true) colocalo antes del kbd_init(). Asegúrate también que el puerto al que estas asignando en la librería, sea el mismo al cual estas conectando la LCD.

Saludos
El papel lo aguanta todo

Desconectado darck_khronos

  • PIC18
  • ****
  • Mensajes: 493
Re: Problema al Usar Flex_Lcd.h
« Respuesta #23 en: 10 de Octubre de 2009, 22:04:03 »
ya lo puse y tampoco nada

dejo adjunto tanto el codigo como las librerias que descargue y use sin exito

kbd_lib
kbd2
lcdx
lcd2
kbd4x4

Desconectado darck_khronos

  • PIC18
  • ****
  • Mensajes: 493
Re: Problema al Usar Flex_Lcd.h
« Respuesta #24 en: 11 de Octubre de 2009, 13:54:29 »
Incluso usando interrupciones nadamas no hay muestra en mi lcd

Código: [Seleccionar]
#include <18f4550.h>
#fuses XT,NOWDT,NOPROTECT,NOLVP     //ordenes para el programador
#use delay (clock=8000000)         //Fosc=4Mhz
#define use_portd_lcd TRUE
#include <lcd.c>               //libreria manejo lcd 8bits
#define use_portb_kbd TRUE
#include <kbdd.c>//kbd_lib
#use fast_io(b)
#use fast_io(d)

int tecla;

  #int_rb
  void control_rb() {
  tecla = kbd_getc();
  printf(lcd_putc,"fPulso %c",tecla); }

  void main() {
  lcd_init(); // Inicializa el LCD
  port_b_pullups(TRUE);
  kbd_init(); // Inicializa el teclado matricial
  enable_interrupts(int_rb); // Habilita interrupión cambio de estado RB4:7
  enable_interrupts(global); // Habilita interrupciones globalmente
  printf(lcd_putc,"f");
  sleep();
 }

Desconectado jhozate

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1698
Re: Problema al Usar Flex_Lcd.h
« Respuesta #25 en: 11 de Octubre de 2009, 14:27:28 »
pss mira q acabo de probar yo con la libreria de que esta en la web de don diego y me funciona bien. te dejo el codigo
Código: [Seleccionar]
#INCLUDE "KBD_LIB.C"
#include "flex_lcd.c"


CHAR TECLA;
void main()
{

   setup_adc_ports(NO_ANALOGS|VSS_VDD);
   setup_adc(ADC_OFF);
   setup_psp(PSP_DISABLED);
   setup_spi(SPI_SS_DISABLED);
   setup_wdt(WDT_OFF);
   setup_timer_0(RTCC_INTERNAL);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   setup_timer_3(T3_DISABLED|T3_DIV_BY_1);
   setup_comparator(NC_NC_NC_NC);
   setup_vref(FALSE);
   port_b_pullups(true);
   SET_TRIS_D(0);
   lcd_init();
   kbd_init();

   
   PRINTF(LCD_PUTC,"HOLA");
   for(;;)
   {
      TECLA=KBD_GETC();
      if(TECLA!=0)
         {PRINTF(LCD_PUTC,"%C",TECLA);}
   
   }
   

}
Ser Colombiano es un Premio, Saludos desde CALI-COLOMBIA

Desconectado darck_khronos

  • PIC18
  • ****
  • Mensajes: 493
Re: Problema al Usar Flex_Lcd.h
« Respuesta #26 en: 11 de Octubre de 2009, 14:32:11 »
Ya modifique el codigo y con este si funciono ahora estoy haciendo un menu
Código: C
  1. #include <18f4550.h>
  2. #fuses XT,NOWDT,NOPROTECT,NOLVP     //ordenes para el programador
  3. #use delay (clock=8000000)         //Fosc=4Mhz
  4. #include <kbd_lib.c> //libreria manejo TECLADO 4X4
  5. #include <lcd_2.c> //libreria manejo lcd 4 bits
  6. #use fast_io(B)
  7. #use fast_io(D)
  8.  
  9. void main() {
  10.    char k;
  11.    int  x;
  12.          
  13.    lcd_init();
  14.    kbd_init();
  15.    port_b_pullups(TRUE);
  16.  
  17.    lcd_putc("\fListo...\n");
  18.                                    
  19.    while (TRUE) {
  20.       k=kbd_getc();
  21.       x=k-48;                             //Conversión numérica
  22.       if(k!=0){
  23.         if(k=='*')  
  24.           lcd_putc('\f');
  25.         else
  26.            lcd_putc(k);             //Imprime carácter
  27.            delay_ms(500);
  28.            printf(lcd_putc,"\f Car=%c",k); //Imprime carácter
  29.          
  30.       }
  31.    }
  32. }