Autor Tema: Flex_LCD_C30 (4-bits con o sin R/W; 3 pines más registro desplazamiento)  (Leído 12905 veces)

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

Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Flex_LCD_C30 (4-bits con o sin R/W; 3 pines más registro desplazamiento)
« Respuesta #15 en: 22 de Julio de 2010, 18:49:08 »
Tengo un problema con proteus, yo estoy utilizando un 33fj128gp802 y proteus llega al 33fj16gp304. Con un 33FJ16GP304 según proteus funcionaría bien (aunque yo desconfío) y en un 33fj128gp802 en la realidad se siguen notando los |||.

Y puedes enviar los mismos datos por puerto serie para ver si sucede lo mismo? O usar ITOA para generar el string a enviar? Según datasheet se esta enviando 0x7C, lo que equivale a "|"  :?


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

Desconectado cerebro

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 735
Re: Flex_LCD_C30 (4-bits con o sin R/W; 3 pines más registro desplazamiento)
« Respuesta #16 en: 23 de Julio de 2010, 17:11:30 »
C30 creo que no tiene soporte para la función ITOA (un pequeño descuido de mcp) por lo menos no la encontré en la stdlib que es donde debería estar es muy probable que utilicen sprintf... no importa en realidad porque implemente las siguientes funciones para saber si todo era culpa de printf


Código: [Seleccionar]
//------------------------------------------------------------------------
// formatea un entero a un Cstring

 char *u16toa (unsigned int value, char *pBuffer, unsigned char radix)
 {
     unsigned char digit;
 
    pBuffer += 4;
    *--pBuffer = '\0';
  
     do {
        digit = value % radix;
        *--pBuffer = '0' + digit + ((digit > 9) ? 7 : 0);
    } while ((value /= radix) != 0);
  
     return (pBuffer);
 }
 
 
 char *i16toa (int number, char *pBuffer, unsigned char radix)
 {
     if (number >= 0)
         return (u16toa (number, pBuffer, radix));
     else {
        pBuffer = u16toa (-number, pBuffer, radix);
       *--pBuffer = '-';
        return (pBuffer);
    }
 }

 
//------------------------------------------------------------------------

int promedio=0;
char buffer[4];

void ProcesoADC(int * AdcBuffer)
{

promedio= (AdcBuffer[0]+AdcBuffer[1]+AdcBuffer[2]+AdcBuffer[3]) >> 2;

putsLCD(u16toa(promedio, buffer, 10));
WriteDataLCD(' ');

 

y los resultados fueron exactamente los mismos  :cry:, encima no tengo acceso a un puerto serie...
LAS MALVINAS SON ARGENTINAS!

Desconectado cerebro

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 735
Re: Flex_LCD_C30 (4-bits con o sin R/W; 3 pines más registro desplazamiento)
« Respuesta #17 en: 23 de Julio de 2010, 17:41:22 »
ya lo solucionamos!

Código: [Seleccionar]
void ProcesoADC(int * AdcBuffer)
{

promedio= (AdcBuffer[0]+AdcBuffer[1]+AdcBuffer[2]+AdcBuffer[3]) >> 2;

putsLCD(u16toa(promedio, buffer, 10));

while(BusyLCD());
WriteDataLCD(' ');
while(BusyLCD());
}

Así esta funcionando, al parecer estaba ocupado el LCD... queda ver si son necesario los 2 busyLCD o uno solo, más tarde lo estoy probando de nuevo!

Saludos!
LAS MALVINAS SON ARGENTINAS!

Desconectado javierexe22

  • PIC10
  • *
  • Mensajes: 20
Re: Flex_LCD_C30 (4-bits con o sin R/W; 3 pines más registro desplazamiento)
« Respuesta #18 en: 26 de Agosto de 2010, 18:18:42 »
Hola a todos. Tengo el siguiente siguiente codigo:
Código: [Seleccionar]
#include <p33FJ32GP202.h>
#include <TimeDelay.h>
#include <LCD_C30.h>
#include <stdio.h>



//************************************************************************
_FOSCSEL(IESO_OFF & FNOSC_PRI); // Oscilador primario
_FOSC(FCKSM_CSECMD & OSCIOFNC_OFF & POSCMD_XT); // Conmutación de Clock habilitad, Fail-Safe Clock des-habilitado, OSC2 Clout, Cristal XT.
_FWDT(FWDTEN_OFF);// Watchdog des-habilitado.
_FPOR(FPWRT_PWR2);// Power-on Reset 2ms.
//****************************************************************

#define LCD_rev 1.0

int __OUT_PER=1;

main (void)
{

//********************Config PLL a 40 mips con Cristal de 4 Mhz**************
PLLFBD = 0x004E; // M=80.
CLKDIV = 0x0000; //N1=2, N2=2.

// Cambiamos clock para incorporar PLL.-
__builtin_write_OSCCONH(0b011); // Indicamos cambio a clock primario con PLL.-
__builtin_write_OSCCONL(0x01); // Iniciamos cambio.-

while(OSCCONbits.OSWEN == 1) {}; // Esperamos a que se termine el cambio de clock.

AD1PCFGL=0xFFFF; // todos los pines digitales.-
OpenLCD(LINEAS_5X7);
printf("HOLA \n C30   %f", LCD_rev);
while(1){ }
}

Pero al compilar me da un error que no tengo idea de que se trata:
Código: [Seleccionar]
Make: The target "F:\Documents and Settings\Administrador\Mis documentos\MPLAB\manejo lcd.o" is out of date.
Executing: "F:\Archivos de programa\Microchip\MPLAB C30\bin\pic30-gcc.exe" -mcpu=33FJ32GP202 -x c -c   "manejo lcd.c" -o"manejo lcd.o" -D__DEBUG -g -Wall
manejo lcd.c:3:23: error: TimeDelay.h: No such file or directory
In file included from manejo lcd.c:4:
f:/archivos de programa/microchip/mplab c30/bin/bin/../../support/peripheral_30F_24H_33F/LCD_C30.h:24:2: warning: #warning "Se ha definido valor de FCY para realización de demoras!!!"
manejo lcd.c:21: warning: return type defaults to 'int'
Halting build on first failure as requested.
----------------------------------------------------------------------
Debug build of project `F:\Documents and Settings\Administrador\Mis documentos\MPLAB\manejo lcd.mcp' failed.
Language tool versions: pic30-as.exe v3.12, pic30-gcc.exe v3.12, pic30-ld.exe v3.12, pic30-ar.exe v3.12
Preprocessor symbol `__DEBUG' is defined.
Thu Aug 26 18:03:33 2010

Si alguien tiene idea de lo que puede estar suciendo, soy todo oidos y ojos! Saludos.

Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Flex_LCD_C30 (4-bits con o sin R/W; 3 pines más registro desplazamiento)
« Respuesta #19 en: 26 de Agosto de 2010, 18:47:49 »
Tu estás incluyendo la librería TimeDelay.h, es la que no encuentra, y por eso el error.


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

Desconectado javierexe22

  • PIC10
  • *
  • Mensajes: 20
Re: Flex_LCD_C30 (4-bits con o sin R/W; 3 pines más registro desplazamiento)
« Respuesta #20 en: 26 de Agosto de 2010, 22:49:14 »
Tu estás incluyendo la librería TimeDelay.h, es la que no encuentra, y por eso el error.


Saludos!
Si, pero me parece raro porque le asocie la librería al proyecto. No basta con eso? En la figura que adjunto en el comentario anterior esta incluida dentro del proyecto. O eso es lo que yo creo, debería hacer algo mas? Disculpen pero recién me estoy iniciando con el C30 y estoy medio confundido..Saludos!
« Última modificación: 26 de Agosto de 2010, 22:51:50 por javierexe22 »

Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Flex_LCD_C30 (4-bits con o sin R/W; 3 pines más registro desplazamiento)
« Respuesta #21 en: 26 de Agosto de 2010, 22:57:36 »
En project/Build/project coloca la dirección de la carpeta donde se encuentra, puede que sea eso.


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

Desconectado javierexe22

  • PIC10
  • *
  • Mensajes: 20
Re: Flex_LCD_C30 (4-bits con o sin R/W; 3 pines más registro desplazamiento)
« Respuesta #22 en: 03 de Septiembre de 2010, 16:39:52 »
En project/Build/project coloca la dirección de la carpeta donde se encuentra, puede que sea eso.


Saludos!
Gracias lo solucione colocando #include "TimeDealy.h"

Saludos!

Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Flex_LCD_C30 (4-bits con o sin R/W; 3 pines más registro desplazamiento)
« Respuesta #23 en: 03 de Septiembre de 2010, 20:13:33 »
En project/Build/project coloca la dirección de la carpeta donde se encuentra, puede que sea eso.


Saludos!
Gracias lo solucione colocando #include "TimeDealy.h"

Saludos!

Adonde? Si ya estaba eso en el main?  :? Aaa! los archivos están en la carpeta del proyecto? Así, si!  :D


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

Desconectado ajcev

  • PIC10
  • *
  • Mensajes: 3
Re: Flex_LCD_C30 (4-bits con o sin R/W; 3 pines más registro desplazamiento)
« Respuesta #24 en: 15 de Septiembre de 2010, 18:43:18 »
hola...........estoy tratando de probar el programa del autor (suky) practicamente el mismo....(visualizacion con lcd y las librerias lcd_c30.c el que explica en PIC24 y C30 un mundo de diversiones) pero me sale unos errores los siguientes:

----------------------------------------------------------------------
Debug build of project `C:\printf\LCD.mcp' started.
Preprocessor symbol `__DEBUG' is defined.
Wed Sep 15 16:13:16 2010
----------------------------------------------------------------------
Clean: Deleting intermediary and output files.
Clean: Deleted file "C:\printf\lcd.o".
Clean: Deleted file "C:\printf\LCD_C30.o".
Clean: Done.
Executing: "C:\Archivos de programa\Microchip\MPLAB C30\bin\pic30-gcc.exe" -mcpu=30F2010 -x c -c   "lcd.c" -o"lcd.o" -D__DEBUG -g -Wall
lcd.c: In function `main':
lcd.c:25: warning: wint_t format, double arg (arg 2)
lcd.c:25: warning: too few arguments for format
lcd.c:28:2: warning: no newline at end of file
Executing: "C:\Archivos de programa\Microchip\MPLAB C30\bin\pic30-gcc.exe" -mcpu=30F2010 -x c -c   "LCD_C30.c" -o"LCD_C30.o" -D__DEBUG -g -Wall
LCD_C30.c:285:2: warning: no newline at end of file
Executing: "C:\Archivos de programa\Microchip\MPLAB C30\bin\pic30-gcc.exe" -mcpu=30F2010 -x c -c   "write.c" -o"write.o" -D__DEBUG -g -Wall
Executing: "C:\Archivos de programa\Microchip\MPLAB C30\bin\pic30-gcc.exe" -mcpu=30F2010 "lcd.o" "LCD_C30.o" "write.o" "C:\Archivos de programa\Microchip\MPLAB C30\lib\libp30F2010-coff.a" "C:\Archivos de programa\Microchip\MPLAB C30\lib\libp30F2010-elf.a" -o"LCD.cof" -Wl,--script="..\Archivos de programa\Microchip\MPLAB C30\support\gld\p30f2010.gld",--defsym=__MPLAB_BUILD=1,--defsym=__MPLAB_DEBUG=1,-Map="LCD.map",--report-mem
C:\Archivos de programa\Microchip\MPLAB C30\bin\pic30-coff-ld.exe: Link Error: address 0x2374 of LCD.cof section .text is not within region program
C:\Archivos de programa\Microchip\MPLAB C30\bin\pic30-coff-ld.exe: Link Error: section .const [000100   -> 000121  ] overlaps section .text [000100   -> 002373  ]
C:\Archivos de programa\Microchip\MPLAB C30\bin\pic30-coff-ld.exe: Link Error: section .dinit%15 [000122   -> 00025d  ] overlaps section .text [000100   -> 002373  ]
C:\Archivos de programa\Microchip\MPLAB C30\bin\pic30-coff-ld.exe: Link Error: section .isr%16 [00025e   -> 00025f  ] overlaps section .text [000100   -> 002373  ]
C:\Archivos de programa\Microchip\MPLAB C30\bin\pic30-coff-ld.exe: Link terminated due to previous error(s).
Link step failed.
----------------------------------------------------------------------
Debug build of project `C:\printf\LCD.mcp' failed.
Preprocessor symbol `__DEBUG' is defined.
Wed Sep 15 16:13:17 2010
----------------------------------------------------------------------
BUILD FAILED 

Por favor si me pueden decir que esta mal....................

Desconectado ajcev

  • PIC10
  • *
  • Mensajes: 3
Re: Flex_LCD_C30 (4-bits con o sin R/W; 3 pines más registro desplazamiento)
« Respuesta #25 en: 15 de Septiembre de 2010, 19:07:52 »
Hola estoy probando este mismo programa el de suky pero tengo estos errores al compilar, el progrma principal es el siguiente:
#include "p30f2010.h"
#define FCY 5000000UL
//#define _delay_ms(d) __delay32( (unsigned long long) (d)*(FCY)/1000)
//#define _delay_us(d) __delay32( (unsigned long long) (d)*(FCY)/1000000)
#include <libpic30.h>
#include <stdio.h>
#include "LCD_C30.h"
#define LCD_rev 1.0


_FWDT(WDT_OFF);            // Watchdog des-habilitado
_FOSC(CSW_FSCM_OFF & HS);
_FGS(CODE_PROT_OFF);       //Disable Code Protection


//#define FCY 10000000UL
   

   
int __OUT_PER=1;
 
int main(void){
 
     OpenLCD(LINEAS_5X7);
     printf("Probando LCD\n%C30        v:%1.1f",LCD_rev);
while(1){}

}



Por favor si saben que esta mal ayuda.......... a suky en el archivo write.c tenia el archivo 30sim.h pero ya lo busque y no lo tengo soloun 30sim.gld no se si esto sea indispensable.....   

Desconectado dex88

  • PIC10
  • *
  • Mensajes: 2
Re: Flex_LCD_C30 (4-bits con o sin R/W; 3 pines más registro desplazamiento)
« Respuesta #26 en: 08 de Julio de 2011, 19:56:07 »
Hola! espero alguien pueda ayudarme, estoy tratando de hacer funcionar un simple programita para un 30F4013, para que maneje un LCD 2x16, pero no consigo hacer que compile, me tira varios errores en el archivo write.c

C:\Program Files\Microchip\MPLAB C30\src\pic30\write.c:75: error: syntax error before 'switch'
C:\Program Files\Microchip\MPLAB C30\src\pic30\write.c:78: warning: type defaults to 'int' in declaration of 'txreg'
C:\Program Files\Microchip\MPLAB C30\src\pic30\write.c:78: error: 'buffer' undeclared here (not in a function)
C:\Program Files\Microchip\MPLAB C30\src\pic30\write.c:78: warning: data definition has no type or storage class
C:\Program Files\Microchip\MPLAB C30\src\pic30\write.c:79: error: syntax error before 'break'

nose si sera que estoy modificando mal el archivo o que?

Muchas Gracias!

Desconectado dex88

  • PIC10
  • *
  • Mensajes: 2
Re: Flex_LCD_C30 (4-bits con o sin R/W; 3 pines más registro desplazamiento)
« Respuesta #27 en: 14 de Julio de 2011, 14:03:00 »
hola! YA SOLUCIONE UNA PARTE Y PUEDO COMPILAR EL PROGRAMA, PERO NO LOGRO ESCRIBIR NADA EN EL LCD...ALGUIEN PODRIA PASARME LA LIBRERIA WRITE.C PARA VER COMO DEBE QUEDAR?. MUCHAS GRACIAS


 

anything