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

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado darck_khronos

  • PIC18
  • ****
  • Mensajes: 493
Problema al Usar Flex_Lcd.h
« en: 01 de Octubre de 2009, 23:41:46 »
Tengo un pequeño problemita quiero usar el Flex_lcd.h y direccionar todo al puerto A mas que al compilar me da Error

Código: C
  1. #include <18f2550.h>
  2. #fuses XT,NOWDT,NOPROTECT,NOLVP
  3. #use delay(clock= 4000000)        
  4. #include <flex_lcd.h>
  5. #include <kbd_lib.c>
  6. #define use_portb_kbd TRUE  
  7. #define LCD_DB4   PIN_A4
  8. #define LCD_DB5   PIN_A5
  9. #define LCD_DB6   PIN_A6
  10. #define LCD_DB7   PIN_A7
  11. #define LCD_RS    PIN_A1
  12. #define LCD_RW    PIN_A2
  13. #define LCD_E     PIN_A0      
  14.  
  15. void main() {
  16.    char k;
  17.    int  x;
  18.          
  19.    lcd_init();
  20.    kbd_init();
  21.    port_b_pullups(TRUE);
  22.  
  23.    lcd_putc("\fListo...\n");
  24.                                    
  25.    while (TRUE) {
  26.       k=kbd_getc();
  27.       x=k-48;                             //Conversión numérica
  28.       if(k!=0){
  29.         if(k=='*')  
  30.           lcd_putc('\f');
  31.         else
  32.            lcd_putc(k);             //Imprime carácter
  33.            delay_ms(500);
  34.            printf(lcd_putc,"\f Car=%c",k); //Imprime carácter
  35.            delay_ms(500);
  36.            printf(lcd_putc,"\f Car=%u",k); //Imprime valor ASCII
  37.            delay_ms(500);
  38.            printf(lcd_putc,"\f Num=%u",x); //Imprime valor numérico
  39.            delay_ms(500);
  40.            lcd_putc("\fListo...\n");
  41.       }
  42.    }
  43. }
intente hacer esta simulacion con la lcd.c ya configurada para usar un teclado matricial de 4x4 pero al conectar la lcd y el teclado en el puerto b nadamas no me manda señales la Lcd de que reciba algun dato

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Problema al Usar Flex_Lcd.h
« Respuesta #1 en: 02 de Octubre de 2009, 00:29:31 »
Hola.

El PORTA no es de 8 bits.
El papel lo aguanta todo

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Problema al Usar Flex_Lcd.h
« Respuesta #2 en: 02 de Octubre de 2009, 01:13:54 »
 :z) Aparte quieres usar el pin RA6 y tenes definido un cristal externo "XT" Como vas hacer  :shock:  :D


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado darck_khronos

  • PIC18
  • ****
  • Mensajes: 493
Re: Problema al Usar Flex_Lcd.h
« Respuesta #3 en: 02 de Octubre de 2009, 10:50:39 »
ya cambie el codigo pero aun asi me sale lo siguiente
Codigo Pic modificado
Código: C
  1. #include <18f2550.h>
  2. #fuses NOWDT,NOPROTECT,NOLVP,INTRC_IO
  3. #use delay(clock= 4000000)

Respuesta Mplab
Código: [Seleccionar]
Executing: "C:\Program files\Picc\CCSC.exe" +FH "Master.c" +DF +LN +T +A +M +Z +Y=9 +EA
*** Error 12 "C:\Program Files\PICC\drivers\flex_lcd.h" Line 43(13,20): Undefined identifier   LCD_DB4
*** Error 12 "C:\Program Files\PICC\drivers\flex_lcd.h" Line 44(13,20): Undefined identifier   LCD_DB5
*** Error 12 "C:\Program Files\PICC\drivers\flex_lcd.h" Line 45(13,20): Undefined identifier   LCD_DB6
*** Error 12 "C:\Program Files\PICC\drivers\flex_lcd.h" Line 46(13,20): Undefined identifier   LCD_DB7
*** Error 12 "C:\Program Files\PICC\drivers\flex_lcd.h" Line 49(14,19): Undefined identifier   LCD_E
*** Error 12 "C:\Program Files\PICC\drivers\flex_lcd.h" Line 51(13,18): Undefined identifier   LCD_E
*** Error 12 "C:\Program Files\PICC\drivers\flex_lcd.h" Line 73(13,18): Undefined identifier   LCD_E
*** Error 12 "C:\Program Files\PICC\drivers\flex_lcd.h" Line 76(18,25): Undefined identifier   LCD_DB4
*** Error 12 "C:\Program Files\PICC\drivers\flex_lcd.h" Line 77(18,25): Undefined identifier   LCD_DB5
*** Error 12 "C:\Program Files\PICC\drivers\flex_lcd.h" Line 78(18,25): Undefined identifier   LCD_DB6
*** Error 12 "C:\Program Files\PICC\drivers\flex_lcd.h" Line 79(18,25): Undefined identifier   LCD_DB7
*** Error 12 "C:\Program Files\PICC\drivers\flex_lcd.h" Line 81(12,17): Undefined identifier   LCD_E
*** Error 12 "C:\Program Files\PICC\drivers\flex_lcd.h" Line 96(13,19): Undefined identifier   LCD_RW
*** Error 12 "C:\Program Files\PICC\drivers\flex_lcd.h" Line 111(12,18): Undefined identifier   LCD_RS
*** Error 12 "C:\Program Files\PICC\drivers\flex_lcd.h" Line 120(16,22): Undefined identifier   LCD_RS
*** Error 51 "C:\Program Files\PICC\drivers\flex_lcd.h" Line 121(1,5): A numeric expression must appear here
*** Error 12 "C:\Program Files\PICC\drivers\flex_lcd.h" Line 127(12,18): Undefined identifier   LCD_RW
*** Error 12 "C:\Program Files\PICC\drivers\flex_lcd.h" Line 131(12,17): Undefined identifier   LCD_E
*** Error 12 "C:\Program Files\PICC\drivers\flex_lcd.h" Line 142(12,18): Undefined identifier   LCD_RS
*** Error 12 "C:\Program Files\PICC\drivers\flex_lcd.h" Line 145(12,18): Undefined identifier   LCD_RW
*** Error 12 "C:\Program Files\PICC\drivers\flex_lcd.h" Line 148(12,17): Undefined identifier   LCD_E
*** Error 12 "C:\Program Files\PICC\drivers\flex_lcd.h" Line 227(13,19): Undefined identifier   LCD_RS
*** Error 12 "C:\Program Files\PICC\drivers\flex_lcd.h" Line 229(12,18): Undefined identifier   LCD_RS
      23 Errors,  0 Warnings.
Halting build on first failure as requested.
BUILD FAILED: Fri Oct 02 08:50:08 2009


Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: Problema al Usar Flex_Lcd.h
« Respuesta #4 en: 02 de Octubre de 2009, 11:13:13 »
Tengo un pequeño problemita quiero usar el Flex_lcd.h y direccionar todo al puerto A mas que al compilar me da Error

Código: C
  1. #include <18f2550.h>
  2. #fuses XT,NOWDT,NOPROTECT,NOLVP
  3. #use delay(clock= 4000000)        
  4. #include <flex_lcd.h>
  5. #include <kbd_lib.c>
  6. #define use_portb_kbd TRUE  
  7. #define LCD_DB4   PIN_A4
  8. #define LCD_DB5   PIN_A5
  9. #define LCD_DB6   PIN_A6
  10. #define LCD_DB7   PIN_A7
  11. #define LCD_RS    PIN_A1
  12. #define LCD_RW    PIN_A2
  13. #define LCD_E     PIN_A0      
  14.  
  15. void main() {
  16.    char k;
  17.    int  x;
  18.          
  19.    lcd_init();
  20.    kbd_init();
  21.    port_b_pullups(TRUE);
  22.  
  23.    lcd_putc("\fListo...\n");
  24.                                    
  25.    while (TRUE) {
  26.       k=kbd_getc();
  27.       x=k-48;                             //Conversión numérica
  28.       if(k!=0){
  29.         if(k=='*')  
  30.           lcd_putc('\f');
  31.         else
  32.            lcd_putc(k);             //Imprime carácter
  33.            delay_ms(500);
  34.            printf(lcd_putc,"\f Car=%c",k); //Imprime carácter
  35.            delay_ms(500);
  36.            printf(lcd_putc,"\f Car=%u",k); //Imprime valor ASCII
  37.            delay_ms(500);
  38.            printf(lcd_putc,"\f Num=%u",x); //Imprime valor numérico
  39.            delay_ms(500);
  40.            lcd_putc("\fListo...\n");
  41.       }
  42.    }
  43. }
intente hacer esta simulacion con la lcd.c ya configurada para usar un teclado matricial de 4x4 pero al conectar la lcd y el teclado en el puerto b nadamas no me manda señales la Lcd de que reciba algun dato

El problema es que el define de la libreria debe ir despues de definir los pines a utilizar, por eso el compilador no los encuentra, aunque el programa si los tenga...

Deberia quedar asi:

Código: C
  1. #include <18f2550.h>
  2. #fuses XT,NOWDT,NOPROTECT,NOLVP
  3. #use delay(clock= 4000000)        
  4.  
  5. #define use_portb_kbd TRUE  
  6. #define LCD_DB4   PIN_A4
  7. #define LCD_DB5   PIN_A5
  8. #define LCD_DB6   PIN_A6
  9. #define LCD_DB7   PIN_A7
  10. #define LCD_RS    PIN_A1
  11. #define LCD_RW    PIN_A2
  12. #define LCD_E     PIN_A0      
  13.  
  14. #include <flex_lcd.h>
  15. #include <kbd_lib.c>
  16.  
  17. void main() {
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Problema al Usar Flex_Lcd.h
« Respuesta #5 en: 02 de Octubre de 2009, 11:30:32 »
Hola.

Pues ahi el error (los errores) es porque no has definido los pines con los que va a trabajar la LCD  ;-)

La idea es que los definas en los pines que quieras que trabaje la LCD y que existan en el PIC.

Saludos
El papel lo aguanta todo

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: Problema al Usar Flex_Lcd.h
« Respuesta #6 en: 02 de Octubre de 2009, 11:43:01 »
es por el orden, hiciste esto cualesquiera sean los pines elegidos:

include <flex_lcd.h>
#include <kbd_lib.c>
#define use_portb_kbd TRUE  
#define LCD_DB4   PIN_A4
#define LCD_DB5   PIN_A5
#define LCD_DB6   PIN_A6
#define LCD_DB7   PIN_A7
#define LCD_RS    PIN_A1
#define LCD_RW    PIN_A2
#define LCD_E     PIN_A0

y debe ser:

#define LCD_DB4   PIN_A4
#define LCD_DB5   PIN_A5
#define LCD_DB6   PIN_A6
#define LCD_DB7   PIN_A7
#define LCD_RS    PIN_A1
#define LCD_RW    PIN_A2
#define LCD_E     PIN_A0
include <flex_lcd.h>  //después de los defines, porque esos defines se usaran en la lib
#define use_portb_kbd TRUE  //lo mismo acá este, define seguramente se usará en la lib kbd,
                                        //y debe estar definido antes de incluir la libreria
#include <kbd_lib.c>



edit: uuy ya me ganaron :D
.

Desconectado darck_khronos

  • PIC18
  • ****
  • Mensajes: 493
Re: Problema al Usar Flex_Lcd.h
« Respuesta #7 en: 02 de Octubre de 2009, 12:34:58 »
es por el orden, hiciste esto cualesquiera sean los pines elegidos:

include <flex_lcd.h>
#include <kbd_lib.c>
#define use_portb_kbd TRUE  
#define LCD_DB4   PIN_A4
#define LCD_DB5   PIN_A5
#define LCD_DB6   PIN_A6
#define LCD_DB7   PIN_A7
#define LCD_RS    PIN_A1
#define LCD_RW    PIN_A2
#define LCD_E     PIN_A0

y debe ser:

#define LCD_DB4   PIN_A4
#define LCD_DB5   PIN_A5
#define LCD_DB6   PIN_A6
#define LCD_DB7   PIN_A7
#define LCD_RS    PIN_A1
#define LCD_RW    PIN_A2
#define LCD_E     PIN_A0
include <flex_lcd.h>  //después de los defines, porque esos defines se usaran en la lib
#define use_portb_kbd TRUE  //lo mismo acá este, define seguramente se usará en la lib kbd,
                                        //y debe estar definido antes de incluir la libreria
#include <kbd_lib.c>



edit: uuy ya me ganaron :D


ya hice el cambio que marcas y ya compila el detalle es que aun no me muestra nada

Código: C
  1. #include <18f2550.h>
  2. #fuses NOWDT,NOPROTECT,NOLVP,INTRC_IO
  3. #use delay(clock= 4000000)        
  4. #define LCD_DB4   PIN_A3
  5. #define LCD_DB5   PIN_A4
  6. #define LCD_DB6   PIN_A5
  7. #define LCD_DB7   PIN_A6
  8. #define LCD_RS    PIN_A1
  9. #define LCD_RW    PIN_A2
  10. #define LCD_E     PIN_A0
  11. #include <flex_lcd.h>
  12. #define use_portb_kbd TRUE
  13.                          
  14. #include <kbd_lib.c>    
  15.  
  16. void main() {
  17.    char k;
  18.    int  x;
  19.          
  20.    lcd_init();
  21.    kbd_init();
  22.    port_b_pullups(TRUE);
  23.  
  24.    lcd_putc("\fListo...\n");
  25.                                    
  26.    while (TRUE) {
  27.       k=kbd_getc();
  28.       x=k-48;                             //Conversión numérica
  29.       if(k!=0){
  30.         if(k=='*')  
  31.           lcd_putc('\f');
  32.         else
  33.            lcd_putc(k);             //Imprime carácter
  34.            delay_ms(500);
  35.            printf(lcd_putc,"\f Car=%c",k); //Imprime carácter
  36.            delay_ms(500);
  37.            printf(lcd_putc,"\f Car=%u",k); //Imprime valor ASCII
  38.            delay_ms(500);
  39.            printf(lcd_putc,"\f Num=%u",x); //Imprime valor numérico
  40.            delay_ms(500);
  41.            lcd_putc("\fListo...\n");
  42.       }
  43.    }
  44. }

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: Problema al Usar Flex_Lcd.h
« Respuesta #8 en: 02 de Octubre de 2009, 12:40:11 »
¿No será que RA4 es colector abierto y necesita pullup?

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: Problema al Usar Flex_Lcd.h
« Respuesta #9 en: 02 de Octubre de 2009, 13:02:49 »
y si es pull-up tb funciona con lógica inversa, cierto?
.

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: Problema al Usar Flex_Lcd.h
« Respuesta #10 en: 02 de Octubre de 2009, 13:07:09 »
No, si le envías un 1 sale un 1 a través de la pullup, y si le envías un 0 sale un 0 a través del pin.

Desconectado darck_khronos

  • PIC18
  • ****
  • Mensajes: 493
Re: Problema al Usar Flex_Lcd.h
« Respuesta #11 en: 02 de Octubre de 2009, 17:41:23 »
Esto es lo que quiero realizar


Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: Problema al Usar Flex_Lcd.h
« Respuesta #12 en: 02 de Octubre de 2009, 18:05:23 »
Pero ahí no tienes conectados los pines del puerto A, sino los del B.

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: Problema al Usar Flex_Lcd.h
« Respuesta #13 en: 02 de Octubre de 2009, 18:29:34 »
Yes!!
Yes!!! :D :D :D :D
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Problema al Usar Flex_Lcd.h
« Respuesta #14 en: 02 de Octubre de 2009, 21:01:39 »
Que paso ahí!  :shock: No entiendo naa!  :D
No contesto mensajes privados, las consultas en el foro


 

anything