TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: RALF2 en 19 de Octubre de 2009, 00:29:26

Título: Driver lcd.c
Publicado por: RALF2 en 19 de Octubre de 2009, 00:29:26
Que tal amigos!
Recien me reincorporo al tema de los pic y esta vez lo hago con el ccs   :mrgreen:

Ahora bien lo que me trae por aqui.  :mrgreen:
Realizando unas pruebas con el nuevo driver, lcd.c, que trae la version 4.093 del CCS, encontre que con esta libreria uno puede definir donde colocar los pines que uno desee utilizar para un bus de 4 bits, de manera similar a como se hace con la flex_lcd  :shock:
No obstante realizando pruebas note que todo funciona bien, si el pic a utilizar es de 40 pines   :shock: como por ejemplo el pic16f877A, pero si el pic es de 28 pines tira un error el compilador.  :?
Les adjunto el programa junto con la simulacion y una fotito  ;-)

Relato esta historia por si alguien sabe el porque de ello o por si alguna persona se le ocurre utilzar esa libreria (lcd.c) sin tomar en cuenta el detallito que les comente  :mrgreen:
Cambien el include por un pic de 28 pines y veran que les tira el error portD...  :z)
nota: Porque esa limitante no la indica la libreria en su encabezado?

Saludos
Título: Re: Driver lcd.c
Publicado por: Suky en 19 de Octubre de 2009, 00:37:00
Eso se soluciona agregando antes del include la definición de los pines a utilizar:

Código: C
  1. #define LCD_ENABLE_PIN  PIN_B0
  2. #define LCD_RS_PIN      PIN_B1      
  3. #define LCD_RW_PIN      PIN_B2                            
  4. #define LCD_DATA4       PIN_B4                              
  5. #define LCD_DATA5       PIN_B5                            
  6. #define LCD_DATA6       PIN_B6      
  7. #define LCD_DATA7       PIN_B7

Saludos!
Título: Re: Driver lcd.c
Publicado por: RALF2 en 19 de Octubre de 2009, 00:54:12
Que tal suky!
Mira bien el archivo que envie y veras que esta como tu dices  :mrgreen:
Primero los define y luego el include lcd.c  :shock:

Pero no os preocupeis, consegui la respuesta a mi problema 10 minutos despues de haber hecho la pregunta   :lol:

Hay que colocar todo como les indique en el adjunto anterior, solo van a cambiar el pic por uno de 28 pines por ejemplo el pic16f876A
Luego dentro de la libreria lcd.c van a modificar donde dice:
#ifndef LCD_DATA_PORT
abajo a la derecha aparece esto:
getenv("SFR:PORTD")
Alli mismo van a cambiar la D por la letra del puerto donde tengan los datos y vuala
lcd.c vive!!!  :D adjunto foto

Saludos
Título: Re: Driver lcd.c
Publicado por: Cryn en 20 de Octubre de 2009, 17:50:24
muy buen dato RALF, entonces el driver lcd.c de CCS ya es flex LCD? :shock:
Título: Re: Driver lcd.c
Publicado por: Suky en 20 de Octubre de 2009, 17:59:31
Que tal suky!
Mira bien el archivo que envie y veras que esta como tu dices  :mrgreen:
Primero los define y luego el include lcd.c  :shock:

Uyy! perdón, no baje el archivo  :mrgreen: Buenísimo que se soluciono el tema.


Saludos!
Título: Re: Driver lcd.c
Publicado por: RALF2 en 20 de Octubre de 2009, 22:42:00
Que tal amigos!
Suki no hay problema  :mrgreen:
Cryn pana es como dices funciona como el driver flex_lcd pero solo para lcd de 20x2  :(
No funciona para lcd de 20x4  :?

Pero del resto funciona como una flex_lcd  ;-)

nota:
No lo confundan este driver nuevo con el primero que traia el ccs, porque me imagino que alguien pensara que es el mismo y no lo es  :mrgreen:

Saludos
Título: Re: Driver lcd.c
Publicado por: Cryn en 21 de Octubre de 2009, 14:41:11
nota:
No lo confundan este driver nuevo con el primero que traia el ccs, porque me imagino que alguien pensara que es el mismo y no lo es  :mrgreen:
Exactamente eso fue lo que vi cuando lo abrí, que no se parecía en nada al anterior, porque antes se definía solamente si querías usar o el puerto B o el puerto D, ahora se lo ve más flexible

seguramente que se podrá con otros tamaños de LCD hay que ver donde modificar un poco

saludos!