TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: carafaelet en 02 de Mayo de 2008, 08:58:54

Título: Invalid option: +EXPORT con CCS y mplab
Publicado por: carafaelet en 02 de Mayo de 2008, 08:58:54
Compañeros me sale un error un tanto extraño al compilar: "Invalid option: +EXPORT" cuando intento compilar el codigo que expongo mas abajo (o quiza sea un problema de lcd2.c?), como podeis ver es uno de los ejemplos de PichScool de la firma Ingeniería de Microsistemas programados. Creo que esto de +EXPORT esta relacionado con las "Inherit golbal settings" que se encuentra en el menu: project --> Build options --> nombredelprograma.c. Alguien sabe a que se puede deber este error del compilador CCS?

//                        EJEMPLO 16
//                  Autor: Mikel Etxebarria
//         (c) Ingeniería de Microsistemas Programados S.L.
//                  www.microcontroladores.com
//                        Bilbao 2006
//
//El manejo de la pantalla LCD
//
//Este ejemplo pretende introducirnos en el manejo de la pantalla LCD, para la visualización
//de diferentes mensajes (p.e. Hola).

#include <16f876A.h>   

//Ajusta los valores de la palabra de configuración durante el ensamblaje:
//Protección de código y datos=OFF, LVP=OFF, WDT=OFF y OSC=XT

#fuses NOPROTECT,NOCPD,NOLVP,NOWDT,XT

// Con estas directivas las funciones "input" y "output_bit" no reprograman
// el pin de la puerta cada vez que son utilizadas. Si no se indica el
// modo fast_io se asume por defecto standard_io el cual reprograma el pin
// siempre antes de ser utilizadas estas funciones.

#use fast_io (A)
#use fast_io (B)
#use delay(clock=4000000)
#include <lcd2.c>   //Incluir funciones de manejo del LCD

main()

   SETUP_ADC_PORTS(NO_ANALOGS);   //Puerta A Digital
   set_tris_a(0x3F);            //RA0-RA5 entradas
   set_tris_b(0x00);            //RB0-RB7 salidas      

   while(1)
   {
    lcd_init();   // Comandos de inicialización del LCD.

    lcd_enviar(LCD_COMANDO,LCD_CURSOR_BLINK); // Envía comando al LCD
    lcd_putc('H');  // Envía caracter al LCD.
    lcd_putc('o');
    lcd_putc('l');
    lcd_putc('a');
    lcd_putc(' ');
    sleep();
  }
}   

Gracias.
Título: Re: Invalid option: +EXPORT con CCS y mplab
Publicado por: MLO__ en 03 de Mayo de 2008, 23:56:12
Hola.

El codigo parece estar bien (no se como sea el codigo de la libreria para la LCD).
Por que no revisas en la opcion Proyect/Build Options y miras si en la casilla "Inherit global setting" si esta la configuracion "+DF +LN +T -A +M -Z +Y=9 +EA" ?

Chao
Título: Re: Invalid option: +EXPORT con CCS y mplab
Publicado por: carafaelet en 04 de Mayo de 2008, 11:33:06
Gracias MLO_, en "Inherit global setting" tengo casi el mismo código que me pones, excepto en la letra A que tiene signo positivo en vez de negativo, es decir, el codigo que tengo aqui puesto es: +DF +LN +T +A +M -Z +Y=9 +EA  Puede ser esto el causante del problema? Sinceramente, no se muy bien que es exactamente lo de inherit global settings y el sentido de cada una de las letras..  :?
Título: Re: Invalid option: +EXPORT con CCS y mplab
Publicado por: juanez en 04 de Mayo de 2008, 16:07:29
hola, yo compilo con ccs y no tengo esa libreria, por que no  pruebas a poner la lcd.c que es la que viene de normal con el ccs a ver si asi te funciona.
Título: Re: Invalid option: +EXPORT con CCS y mplab
Publicado por: MLO__ en 05 de Mayo de 2008, 00:10:56
Hola carafaelet, pues prueba a ver si es eso. El significado de las letricas esta en el manual del CCS .... de persistir el error, estoy de acuerdo con juanez en cambiar la libreria de la LCD..... uno nunca sabe no?

Chao
Título: Re: Invalid option: +EXPORT con CCS y mplab
Publicado por: carafaelet en 05 de Mayo de 2008, 06:55:43
  :( Nada, ya he probado ambas cosas y sigue saliendome el mismo error. He cambiado las iherit.. y he probado con la libreria LCD.C que viene con el compilador pero nada.. El motivo de estar hecho originalmente con una libreria lcd distinta es porque la otra esta adaptada a un lcd en concreto, a las características que vienen en el datasheet de dicho lcd, para asi poder probar y experimentar en la propia lcd y el pic. Se trata de una de estas pcb con multiples periféricos para el aprendizaje de programación de PICs.. 
Título: Re: Invalid option: +EXPORT con CCS y mplab
Publicado por: MLO__ en 05 de Mayo de 2008, 13:33:33
Hola.

Pues, estube revisando un poco lo de las opciones del CCS para la MCU (Multiple Compilation Unit), y ahi aparece la directiva de compilacion #EXPORT. Al colocar esta directiva junto con los respectivos criterios de la funcion, me corre bien, pero al colocar una criterio de funcion diferente a los permitidos me aparece un error raro.

Deduciendo de este fallo (que la verdad el fallo es mio por no poder usar bien el MCU), busca en el codigo a ver si esta esa directiva #EXPORT y, de estar por ahi, modifica los criterios de la funcion o comentalo y prueba de esa manera.

Revisaste la info en la ayuda del CCS para el significado de las letricas? Esta en Contenido\Overview\Invoking the Command Line Compiler

PD\\
Yo acostumbro a colocar el lcd_init() fuera del loop infinito (solo inicializo la LCD una vez).
Probe el codigo de tu programa y corre bien (con la libreria LCD.C)
Título: Re: Invalid option: +EXPORT con CCS y mplab
Publicado por: carafaelet en 06 de Mayo de 2008, 07:52:41
Estube viendo lo de las letricas y veo que es como una configuración del compilador que estamos usando (segun en la familia de pic que estes trabajando, PCB PCM PCH...) asi como los ficheros que quieres o que no que te genere.. En cuanto a la directiva #EXPORT no la he encontrado en el código, es más, poniendo la libreria LCD.C y la inicialización del lcd fuera del loop me sale el mismo error, por lo que me hace pensar si serà algo que esta mal en la onfiguración del compilador y en principio no de las librerias lcd, de todas formas os expongo el código modificado por si veis algo. A ver si es identico al que has probado tu MLO_

Saludos.

#include <16f876A.h>   

//Ajusta los valores de la palabra de configuración durante el ensamblaje:
//Protección de código y datos=OFF, LVP=OFF, WDT=OFF y OSC=XT

#fuses NOPROTECT,NOCPD,NOLVP,NOWDT,XT

// Con estas directivas las funciones "input" y "output_bit" no reprograman
// el pin de la puerta cada vez que son utilizadas. Si no se indica el
// modo fast_io se asume por defecto standard_io el cual reprograma el pin
// siempre antes de ser utilizadas estas funciones.

#use fast_io (A)
#use fast_io (B)
#use delay(clock=4000000)
#include <LCD.C>   //Incluir funciones de manejo del LCD

main()

   SETUP_ADC_PORTS(NO_ANALOGS);   //Puerta A Digital
   set_tris_a(0x3F);            //RA0-RA5 entradas
   set_tris_b(0x00);            //RB0-RB7 salidas      
   lcd_init();   // Comandos de inicialización del LCD.

   while(1)
   {
   

    lcd_enviar(LCD_COMANDO,LCD_CURSOR_BLINK); // Envía comando al LCD
    lcd_putc('H');  // Envía caracter al LCD.
    lcd_putc('o');
    lcd_putc('l');
    lcd_putc('a');
    lcd_putc(' ');
    sleep();
  }
}   
 
Título: Re: Invalid option: +EXPORT con CCS y mplab
Publicado por: MLO__ en 06 de Mayo de 2008, 11:47:03
Hola.

Pues si, ese es el mismo codigo que a mi si me corre!!!!! Sabes que va a tocar? reinstalar el compilador a ver que sucede.

Saludos
Título: Re: Invalid option: +EXPORT con CCS y mplab
Publicado por: carafaelet en 09 de Mayo de 2008, 12:41:53
Reinstalando el compilador seguia dandome el mismo error, por lo que he obtado por cambiar de versión. Y sorpresa, me salen 4 errores, 3 de los cuales son de tres instrucciones de su propia libreria de manejo del LCD..  :shock:  Los errores concretamente son:

*** Error 12 "C:\ARCHIV~1\PICC\drivers\LCD.C" Line 91(29,30): Undefined identifier  -- set_tris_d
*** Error 12 "C:\ARCHIV~1\PICC\drivers\LCD.C" Line 103(30,31): Undefined identifier  -- set_tris_d
*** Error 12 "C:\ARCHIV~1\PICC\drivers\LCD.C" Line 133(28,29): Undefined identifier  -- set_tris_d
*** Error 12 "D:\Els Meus Documents\Picschool\Ex 16\Ejem_16.c" Line 40(5,15): Undefined identifier  -- lcd_enviar

No se.. igual el error es de mi programa y no de la libreria, os ha pasado esto a alguien?  concretamente lo que no admite es: set_tris_lcd , es el mismo error en las lineas 91,103 y 133. Voy a continuar a ver si encuentro el error y el que me da también en mi codigo...
Título: Re: Invalid option: +EXPORT con CCS y mplab
Publicado por: MLO__ en 09 de Mayo de 2008, 13:24:37
Hola.

El error que ahi te sale (el de la LCD) es porque estas usando el PORTD para conectar la LCD y el pic que usas no tiene PORTD, prueba pasarlo al PORTB (en la libreria de la LCD esta esa opcion)  :-)

El ultimo error es porque no has colocado un #define lcd_putc lcd_enviar (cambias el nombre de la funcion lcd_putc a lcd_enviar )

Saludos
Título: Re: Invalid option: +EXPORT con CCS y mplab
Publicado por: carafaelet en 09 de Mayo de 2008, 15:41:05
MLO_ El error del PORTD lo solucione de forma más drástica.. cambiando el pic por un 16F877A ejjeje... que este si que lleva puerto D. Incluí tambien los defines que me has comentado y alguno mas, puesto que me aparecieron nuevos errores de este tipo, hasta que finalmente me he quedado con un error:

*** Error 51 "D:\Els Meus Documents\Picschool\Ex 16\Ejem_16.c" Line 44(27,28): A numeric expression must appear here
 
que concretamente se refiere a la linea:

lcd_enviar(LCD_COMANDO,LCD_CURSOR_BLINK);

Creo que puede deberse a que la libreria LCD.C no usa ninguna de las funciones: LCD_COMANDO,LCD_CURSOR_BLINK. Por otra parte si que he conseguido que funcionase con la libreria lcd2.c que es la que usaba este programa en un principio, y una vez grabado en el PIC ha funcionado correctamente. Creo que voy a tratar de aprender a trabajar con la libreria LCD.C con los programitas que hay por aqui colgados, puesto que no me dará errores de ese tipo, además de que trae mucho menos codigo..  :-)
Título: Re: Invalid option: +EXPORT con CCS y mplab
Publicado por: MLO__ en 09 de Mayo de 2008, 17:03:34
Ok.

El error viene de que no estan definidos los comandos LCD_COMANDO,LCD_CURSOR_BLINK, que en si solo son numeros hexadecimales.
Hice una "modificacion" a una de las librerias de LCD, para que queden habilitados esos comandos (ademas de poder generar simbolos propios y guardarlos en la RAM de la LCD). La posteo para que pruebes con ella ok? Para utilizar los comandos se hace con la funcion LCD_COMMAND();. Hay que colocar los comandos de uno en uno.

Al fin el problema era entonces la version del compilador cierto?

Código: [Seleccionar]
// As defined in the following structure the pin connection is as follows:
//     D0  enable
//     D1  rs
//     D2  rw
//     D4  D4
//     D5  D5
//     D6  D6
//     D7  D7
#define LCD_OFF 0x08
#define CURSOR_ON 0x0E
#define CURSOR_OFF 0x0C
#define BLINK_ON 0x0D
#define BLINK_OFF 0x0C
#define SHIFT_LEFT 0x1C
#define SHIFT_RIGHT 0x18
#define CURSOR_RIGHT 0x14
#define CURSOR_LEFT 0x10
#define CGRAM 0x40


struct lcd_pin_map {                 // This structure is overlayed
           BOOLEAN enable;           // on to an I/O port to gain
           BOOLEAN rs;               // access to the LCD pins.
           BOOLEAN rw;               // The bits are allocated from
           BOOLEAN unused;           // low order up.  ENABLE will
           int     data : 4;         // be pin B0.
        } lcd;


#if defined use_portb_lcd
   #locate lcd = getenv("sfr:PORTB")    // This puts the entire structure over the port
   #define set_tris_lcd(x) set_tris_b(x)
#else
   #locate lcd = getenv("sfr:PORTD")    // This puts the entire structure over the port
   #define set_tris_lcd(x) set_tris_d(x)
#endif


#define lcd_type 2           // 0=5x7, 1=5x10, 2=2 lines
#define lcd_line_two 0x40    // LCD RAM address for the second line


BYTE const LCD_INIT_STRING[4] = {0x20 | (lcd_type << 2), 0xc, 1, 6};
                             // These bytes need to be sent to the LCD
                             // to start it up.


                             // The following are used for setting
                             // the I/O port direction register.

struct lcd_pin_map const LCD_WRITE = {0,0,0,0,0}; // For write mode all pins are out
struct lcd_pin_map const LCD_READ = {0,0,0,0,15}; // For read mode data pins are in



BYTE lcd_read_byte() {
      BYTE low,high;
      set_tris_lcd(LCD_READ);
      lcd.rw = 1;
      delay_cycles(1);
      lcd.enable = 1;
      delay_cycles(1);
      high = lcd.data;
      lcd.enable = 0;
      delay_cycles(1);
      lcd.enable = 1;
      delay_us(1);
      low = lcd.data;
      lcd.enable = 0;
      set_tris_lcd(LCD_WRITE);
      return( (high<<4) | low);
}


void lcd_send_nibble( BYTE n ) {
      lcd.data = n;
      delay_cycles(1);
      lcd.enable = 1;
      delay_us(2);
      lcd.enable = 0;
}


void lcd_send_byte( BYTE address, BYTE n ) {

      lcd.rs = 0;
      while ( bit_test(lcd_read_byte(),7) ) ;
      lcd.rs = address;
      delay_cycles(1);
      lcd.rw = 0;
      delay_cycles(1);
      lcd.enable = 0;
      lcd_send_nibble(n >> 4);
      lcd_send_nibble(n & 0xf);
}


void lcd_init() {
    BYTE i;
    set_tris_lcd(LCD_WRITE);
    lcd.rs = 0;
    lcd.rw = 0;
    lcd.enable = 0;
    delay_ms(15);
    for(i=1;i<=3;++i) {
       lcd_send_nibble(3);
       delay_ms(5);
    }
    lcd_send_nibble(2);
    for(i=0;i<=3;++i)
       lcd_send_byte(0,LCD_INIT_STRING[i]);
}


void lcd_gotoxy( BYTE x, BYTE y) {
   BYTE address;

   if(y!=1)
     address=lcd_line_two;
   else
     address=0;
   address+=x-1;
   lcd_send_byte(0,0x80|address);
}

void lcd_putc( char c) {
   switch (c) {
     case '\f'   : lcd_send_byte(0,1);
                   delay_ms(2);
                                           break;
     case '\n'   : lcd_gotoxy(1,2);        break;
     case '\b'   : lcd_send_byte(0,0x10);  break;
     default     : lcd_send_byte(1,c);     break;
   }
}

char lcd_getc( BYTE x, BYTE y) {
   char value;

    lcd_gotoxy(x,y);
    while ( bit_test(lcd_read_byte(),7) ); // wait until busy flag is low
    lcd.rs=1;
    value = lcd_read_byte();
    lcd.rs=0;
    return(value);
}

void lcd_command(byte cmd)
{
lcd_send_byte(0, cmd);
}


Título: Re: Invalid option: +EXPORT con CCS y mplab
Publicado por: carafaelet en 10 de Mayo de 2008, 05:35:18
Si, efectivamente, al cambiar la version del compilador desaparecio el problema +EXPORT. Cambie la LCD.C por la modificada con los nuevos comandos, pero sigo teniendo el mismo problema en la misma linea..  :? Lo que no entiendo es lo de usar los comandos de uno en uno, a que te refieres a que en el codigo del programa hay que poner primer uno y despues el otro?
Título: Re: Invalid option: +EXPORT con CCS y mplab
Publicado por: MLO__ en 10 de Mayo de 2008, 17:55:51
No hay mejor manera de explicar que mediante un ejemplo, cierto???

Código: [Seleccionar]
#include<18F452.h>
#fuses XT
#use delay(clock=4M)

#include "LCD.C"

#define SYMBOL_1 0
#define SYMBOL_2 1
#define SYMBOL_3 2
#define S_RIGHT 3
#define S_LEFT 4
#define S_UP 5
#define S_DOWN 6

char data_symbol_1[7] = {0b11111, 0b10001, 0b1010, 0b100, 0b1110, 0b11111, 0b11111};
char data_symbol_2[7] = {0x0e, 0x07, 0x03, 0x01, 0x03, 0x07, 0x0e};
char data_symbol_3[7] = {0x00, 0x0f, 0x1f, 0x01, 0x1f, 0x0f, 0x00};
char data_symbol_right[7] = {0x08, 0x0c, 0x0e, 0x0f, 0x0e, 0x0c, 0x08};
char data_symbol_left[7] = {0x02, 0x06, 0x0e, 0x1e, 0x0e, 0x06, 0x02};
char data_symbol_up[7] = {0x00, 0x04, 0x04, 0x0e, 0x0e, 0x0e, 0x1f};
char data_symbol_down[7] = {0x1f, 0x0e, 0x0e, 0x0e, 0x04, 0x04, 0x00};

void simbolos (void)
{
int8 i;

lcd_init();
lcd_command(LCD_OFF);
lcd_putc(SYMBOL_1);
lcd_command(CGRAM);
for(i=0;i<=7;i++)
{ lcd_send_byte(1, data_symbol_1[i]); }
for(i=0;i<=7;i++)
{ lcd_send_byte(1, data_symbol_2[i]); }
for(i=0;i<=7;i++)
{ lcd_send_byte(1, data_symbol_3[i]); }
for(i=0;i<=7;i++)
{ lcd_send_byte(1, data_symbol_right[i]); }
for(i=0;i<=7;i++)
{ lcd_send_byte(1, data_symbol_left[i]); }
for(i=0;i<=7;i++)
{ lcd_send_byte(1, data_symbol_up[i]); }
for(i=0;i<=7;i++)
{ lcd_send_byte(1, data_symbol_down[i]); }
}

void main (void)
{
simbolos();
lcd_init();
 while(true)
 {
lcd_gotoxy(1,1);
lcd_putc("W/c");
lcd_putc(SYMBOL_1);
lcd_putc(SYMBOL_2);
lcd_putc(SYMBOL_3);
lcd_putc(S_RIGHT);
lcd_putc(S_LEFT);
lcd_putc(S_UP);
lcd_putc(S_DOWN);
 }
}


A lo de enviar los comandos de uno en uno, me refiero a que no se puede hacer lo siguiente: lcd_command(LCD_OFF    | CURSOR_ON );, si no que toca enviar primero lcd_command(LCD_OFF) y luego lcd_command(CURSOR_ON).
Título: Re: Invalid option: +EXPORT con CCS y mplab
Publicado por: carafaelet en 11 de Mayo de 2008, 08:53:52
 :?... Ando mas mareado que un pato, os tengo que pedir un poco de paciencia antes que nada porque estoy muy verde en esto, por ello adquiri una placa de aprendizaje. A ver, lo que yo entendí es que habia que incluir todas estas funciones y declaraciones en el programa principal justo antes de la fución principal: main(). Pero no se si es lo correcto, hasta ahora habia entendido el programa principal por su cuenta y luego la libreria de la lcd donde ya se configura esta en particular para su correcto funcionamiento. Pero no entiendo el agregar tantas funciones sobre el manejo de la lcd en el programa principal (si esque es ahi donde tenia que ponerlas). Al hacer esto me han salido un monton de errores al compilar (casi me pongo a llorar, nunca me habian salido tantos!  :( ), la mayoria de ellos:  Expecting a declaration. Como os he dicho mucha paciencia conmigo, y muchas gracias por toda vuestar ayuda...
Título: Re: Invalid option: +EXPORT con CCS y mplab
Publicado por: MLO__ en 11 de Mayo de 2008, 13:00:56
Hola.

Estamos que volamos cierto????  :mrgreen:

Normalmente se adiciona con la directiva de preprocesador #include las librerias correspondientes para hacer manejo de sus funciones en el main. En este caso, hay una libreria (en un archivo LCD.C aparte del main) la cual se incluye en el main con la directiva #include<lcd.c>. Hecho esto, se pueden utilizar todas las funciones que hay dentro de LCD.C en el programa principal.

Porque hay mas funciones en el main???? Es una forma de ordenar el codigo. Hay una funcion la cual envia los simbolos definidos por mi mismo a la LCD, a esa funcion la llamo void simbolos(void). Luego lo que hago es llamarla desde el programa principal.

Mira que en la funcion void simbolos(void) hago uso de funciones que estan en LCD.C y en el void main(void) tambien. La idea clave, para que no te enredes (o yo no te enrede!!!!) es que separes las librerias del programa principal. El programa principal es un archivo .C aparte de las librerias.

Saludos
Título: Re: Invalid option: +EXPORT con CCS y mplab
Publicado por: carafaelet en 16 de Mayo de 2008, 11:43:37
 Gracias por la aclaración. Lo que no entiendo es el desplegar todas esas funciones en el main, ¿no seria mas práctico incluirlas en la libreria LCD? Lo digo por tener el codigo mas estructurado.. porque a la hora de compilar el programa al incluir esas nuevas funciones me salen muchos errores y me resultaria mas facil cuando mas simple sea el codigo, ya que de momento solo pretendo hacer funcionar la libreria de la lcd con cosas lo mas sencillas posibles, para ir aprendiendo. Saludos!  :-)
Título: Re: Invalid option: +EXPORT con CCS y mplab
Publicado por: MLO__ en 16 de Mayo de 2008, 12:26:59
Hola.

Pues si tu quieres puedes colocar la funcion de generar simbolos nuevos en la libreria de la LCD. No deberia generarte ningun error el adicionar funciones, ya sea en el programa principal o en la libreria, si genera errores es porque las funciones que adicionaste estan mal escritas, otra forma de que de error es porque no declaras los prototipos de funciones al principio del programa (yo casi no lo hago  :shock:).

La estructura seria la siguiente:
Código: [Seleccionar]

#include<18F452.h>
#fuses XT
#use delay(clock=4M)

#include "LCD.C"//libreria para el uso de la LCD

#define SYMBOL_1 0
#define SYMBOL_2 1
#define SYMBOL_3 2
#define S_RIGHT 3
#define S_LEFT 4
#define S_UP 5
#define S_DOWN 6

char data_symbol_1[7] = {0b11111, 0b10001, 0b1010, 0b100, 0b1110, 0b11111, 0b11111};
char data_symbol_2[7] = {0x0e, 0x07, 0x03, 0x01, 0x03, 0x07, 0x0e};
char data_symbol_3[7] = {0x00, 0x0f, 0x1f, 0x01, 0x1f, 0x0f, 0x00};
char data_symbol_right[7] = {0x08, 0x0c, 0x0e, 0x0f, 0x0e, 0x0c, 0x08};
char data_symbol_left[7] = {0x02, 0x06, 0x0e, 0x1e, 0x0e, 0x06, 0x02};
char data_symbol_up[7] = {0x00, 0x04, 0x04, 0x0e, 0x0e, 0x0e, 0x1f};
char data_symbol_down[7] = {0x1f, 0x0e, 0x0e, 0x0e, 0x04, 0x04, 0x00};

void simbolos (void);// Declaro el prototipo de la funcion

void main (void)//Programa principal
{
simbolos();//funcion que guarda un nuevo simbolo en la RAM de la LCD
lcd_init();// funcion de la libreria LCD.C que inicializa la LCD
 while(true)
 {
lcd_gotoxy(1,1);
lcd_putc("W/c");
lcd_putc(SYMBOL_1);
lcd_putc(SYMBOL_2);
lcd_putc(SYMBOL_3);
lcd_putc(S_RIGHT);
lcd_putc(S_LEFT);
lcd_putc(S_UP);
lcd_putc(S_DOWN);
 }
}

void simbolos (void)// definicion de la funcion - Funcion que guarda en la RAM de la LCD nuevos simbolos
{
int8 i;

lcd_init();
lcd_command(LCD_OFF);
lcd_putc(SYMBOL_1);
lcd_command(CGRAM);
for(i=0;i<=7;i++)
{ lcd_send_byte(1, data_symbol_1[i]); }
for(i=0;i<=7;i++)
{ lcd_send_byte(1, data_symbol_2[i]); }
for(i=0;i<=7;i++)
{ lcd_send_byte(1, data_symbol_3[i]); }
for(i=0;i<=7;i++)
{ lcd_send_byte(1, data_symbol_right[i]); }
for(i=0;i<=7;i++)
{ lcd_send_byte(1, data_symbol_left[i]); }
for(i=0;i<=7;i++)
{ lcd_send_byte(1, data_symbol_up[i]); }
for(i=0;i<=7;i++)
{ lcd_send_byte(1, data_symbol_down[i]); }
}


De esta manera el codigo se vuelve mas ordenado. No se, y me gustaria saber, si te esta dando algun error en el uso de la LCD con la libreria que te pase y con el codigo aqui descrito, ya que a mi me corre normal. Adjunto la simulacion.

Saludos
Título: Re: Invalid option: +EXPORT con CCS y mplab
Publicado por: carafaelet en 16 de Mayo de 2008, 13:44:01
 Nada.. siguen saliendome errores... nada mas i nada menos que 100!! ajja.. Las funciones las copio tal qual estan posteadas y las pego justo antes del main, pero no hay forma. Como digo estoy muy verde en esto y me resulta muy dificil tratar los errores al tener tantas funciones, por eso preguntaba si hay alguna forma de no tener tantas fuciones. Respecto a la simulación, veo que hay un .hex como si de un hexadecimal para el pic se tratase.. es una simulacion o es el codigo ensamblado listo para programar? Lo digo porque no uso ningun programa de simulación de hardware, directamente lo grabo en el pic y lo compruebo en la placa de aprendizaje. De hecho como dije, el programa ya me corre sin problemas con la librería especifica del lcd que traia el ejemplo. La cuestion es, podria hacer funcionar la lcp con la libreria lcd.c o la tengo que optimizar para que funcione con la pantalla lcd que tengo en concreto?
Título: Re: Invalid option: +EXPORT con CCS y mplab
Publicado por: MLO__ en 16 de Mayo de 2008, 18:22:30
 :shock: :shock: :shock: :shock: 100!!!!!! jaja  :D

Vamos por partes.

1: Las funciones para usar de la LCD no son todas las que aparecen alli, normalmente se usan las sgtes:

Tambien se usa el socorrido printf(lcd_putc, " v: %u", value);, donde se muestra en la LCD 'v:' y seguido a eso el valor de la variable 'value'.

2. El .hex, es para programar en el micro, la configuracion del oscilador es XT ( 4MHz ).
3. Si se puede hacer funcionar otra configuracion de pines de otra LCD con la libreria LCD.C, lo que hay que hacer es cambiar cosas en la libreria. En este caso se debe tener en cuenta cuales son los pines RW, RS, ENABLE, D4, D5, D6, D7 ( ojo, estamos hablando de la LCD configurada a 4 bits ). Tengo tambien la libreria de la LCD tipo mcc18 ( de microchip ), ellos la ponen en el puerto B y la configuracion de pines es distinta.

Si estas comenzando con esto de los micros, te aconsejo que ta hagas al ISIS, ya que es una excelente herramienta, sobre todo para toooodos esos "desmanes" que uno suele tener y cuestan pics y quemones!!!  :)

Te envio el codigo fuente de la simulacion anterior, para que la compiles y vemos si genera errores listo???

Saludos.


Título: Re: Invalid option: +EXPORT con CCS y mplab
Publicado por: carafaelet en 18 de Mayo de 2008, 08:08:58
 Gracias por lo del ISIS, algo habia leido ya por aqui por el foro. Conzco programas como el famoso Pspice, pero este me parece mucho mas interesante porque permite la simulación de pics y de mucho hardware real que otros simuladores no tiene, que son más teóricos, como el Pspice. Respecto al programita, me sigue dando errores, todos ellos de la libreria y la mayoria del tipo: "LCDD.C" Line 75(33,34): Expecting a declaration" y algun otro como: "LCDD.C" Line 99(7,15): Undefined identifier  -- delay_ms", el cual si que no le encuentro explicación porque la función delay_ms, asi como cualquier otro delay estoy cansado de usarlas y sin problemas...


Título: Re: Invalid option: +EXPORT con CCS y mplab
Publicado por: MLO__ en 18 de Mayo de 2008, 14:44:20
Podrias postear los errores tal como salen? es decir todo completo, para ver que esta fallando

Saludos
Título: Re: Invalid option: +EXPORT con CCS y mplab
Publicado por: carafaelet en 23 de Mayo de 2008, 11:42:07
Cuidado que vaaa...

Executing: "C:\Archivos de programa\PICC\Ccsc.exe" +FH "lcd2x16.c" +EXPORT +DF +LN +T +A +M +Z +Y=9 +EA
*** Error 100 "D:\Els Meus Documents\Picschool\Ex 16\lcd2x16.c" Line 3(5,21): USE parameter value is out of range   Expecting number: 4M
*** Error 103 "D:\Els Meus Documents\Picschool\Ex 16\LCDD.C" Line 75(1,48): Constant out of the valid range  000 is reserved by the compiler
*** Error 48 "D:\Els Meus Documents\Picschool\Ex 16\LCDD.C" Line 75(12,27): Expecting a (
*** Error 43 "D:\Els Meus Documents\Picschool\Ex 16\LCDD.C" Line 75(28,29): Expecting a declaration
*** Error 43 "D:\Els Meus Documents\Picschool\Ex 16\LCDD.C" Line 75(29,30): Expecting a declaration
*** Error 43 "D:\Els Meus Documents\Picschool\Ex 16\LCDD.C" Line 75(31,32): Expecting a declaration
*** Error 43 "D:\Els Meus Documents\Picschool\Ex 16\LCDD.C" Line 75(33,34): Expecting a declaration
*** Error 43 "D:\Els Meus Documents\Picschool\Ex 16\LCDD.C" Line 75(34,38): Expecting a declaration
*** Error 43 "D:\Els Meus Documents\Picschool\Ex 16\LCDD.C" Line 75(39,40): Expecting a declaration
*** Error 43 "D:\Els Meus Documents\Picschool\Ex 16\LCDD.C" Line 75(41,42): Expecting a declaration
*** Error 43 "D:\Els Meus Documents\Picschool\Ex 16\LCDD.C" Line 75(50,51): Expecting a declaration
*** Error 43 "D:\Els Meus Documents\Picschool\Ex 16\LCDD.C" Line 75(51,53): Expecting a declaration
*** Error 43 "D:\Els Meus Documents\Picschool\Ex 16\LCDD.C" Line 75(54,55): Expecting a declaration
*** Error 43 "D:\Els Meus Documents\Picschool\Ex 16\LCDD.C" Line 75(55,56): Expecting a declaration
*** Error 43 "D:\Els Meus Documents\Picschool\Ex 16\LCDD.C" Line 75(56,57): Expecting a declaration
*** Error 43 "D:\Els Meus Documents\Picschool\Ex 16\LCDD.C" Line 75(58,61): Expecting a declaration
*** Error 43 "D:\Els Meus Documents\Picschool\Ex 16\LCDD.C" Line 75(61,62): Expecting a declaration
*** Error 43 "D:\Els Meus Documents\Picschool\Ex 16\LCDD.C" Line 75(63,64): Expecting a declaration
*** Error 43 "D:\Els Meus Documents\Picschool\Ex 16\LCDD.C" Line 75(64,65): Expecting a declaration
*** Error 43 "D:\Els Meus Documents\Picschool\Ex 16\LCDD.C" Line 75(66,67): Expecting a declaration
*** Error 43 "D:\Els Meus Documents\Picschool\Ex 16\LCDD.C" Line 75(67,68): Expecting a declaration
*** Error 43 "D:\Els Meus Documents\Picschool\Ex 16\LCDD.C" Line 75(68,69): Expecting a declaration
*** Error 12 "D:\Els Meus Documents\Picschool\Ex 16\LCDD.C" Line 99(7,15): Undefined identifier  -- delay_us
*** Error 12 "D:\Els Meus Documents\Picschool\Ex 16\LCDD.C" Line 111(7,15): Undefined identifier  -- delay_us
*** Error 12 "D:\Els Meus Documents\Picschool\Ex 16\LCDD.C" Line 136(5,13): Undefined identifier  -- delay_ms
*** Error 12 "D:\Els Meus Documents\Picschool\Ex 16\LCDD.C" Line 139(8,16): Undefined identifier  -- delay_ms
*** Error 12 "D:\Els Meus Documents\Picschool\Ex 16\LCDD.C" Line 143(24,39): Undefined identifier   LCD_INIT_STRING
*** Error 12 "D:\Els Meus Documents\Picschool\Ex 16\LCDD.C" Line 161(20,28): Undefined identifier  -- delay_ms
D:\Els Meus Documents\Picschool\Ex 16\lcd2x16.o ===>  28 Errors,  0 Warnings.
Halting build on first failure as requested.
BUILD FAILED: Fri May 23 16:40:41 2008
Título: Re: Invalid option: +EXPORT con CCS y mplab
Publicado por: MLO__ en 23 de Mayo de 2008, 12:46:09
Hola.

La verdad no entiendo que sucede. Normalmente ese error sale si tu colacas el #include "LCDD.C" antes de la directiva #use delay(clock=4M), ya que es esta directiva la que asigna las funciones de los delays. El orden de los includes debe ser el siguiente
Código: [Seleccionar]
#include<18F452.h>//  o del pic que uses
#fuses XT, NOPROTECT .....
#use delay(clock=4000000)

#include "LCDD.C"
...
...

Que microcontrolador estas usando???? , que version del compilador tienes??? Enviame la referencia para hacer un programa con ese micro, lo verifico y te lo envio a ver que sucede. Listo?

Saludos
Título: Re: Invalid option: +EXPORT con CCS y mplab
Publicado por: carafaelet en 25 de Mayo de 2008, 12:55:29
El orden de los defines parece estar bien, la version de mi compilador es la 3.249 (PCWH de CCS), pero me he dado cuenta de que el codigo no exactamente el mismo que me posteaste en mensajes anteriores, por ejemplo los #define SYMBOL observese como no son iguales (He probado a poner estos defines como en el codigo anteriormente posteado pero me siguen saliendo los mismos errores), posteo a continuación el codigo para ver que puede estar mal. El pic ya lo cambie por el 18F452 por si estaba ahi el problema.

Código: [Seleccionar]
#include<18F452.h>
#fuses XT
#use delay(clock=4M)

#include "LCDD.C"

#define SYMBOL_1 0
#define SYMBOL_2 1
#define SYMBOL_3 2
#define S_RIGHT 3
#define S_LEFT 4
#define S_UP 5
#define S_DOWN 6

char data_symbol_1[7] = {0b11111, 0b10001, 0b1010, 0b100, 0b1110, 0b11111, 0b11111};
char data_symbol_2[7] = {0x0e, 0x07, 0x03, 0x01, 0x03, 0x07, 0x0e};
char data_symbol_3[7] = {0x00, 0x0f, 0x1f, 0x01, 0x1f, 0x0f, 0x00};
char data_symbol_right[7] = {0x08, 0x0c, 0x0e, 0x0f, 0x0e, 0x0c, 0x08};
char data_symbol_left[7] = {0x02, 0x06, 0x0e, 0x1e, 0x0e, 0x06, 0x02};
char data_symbol_up[7] = {0x00, 0x04, 0x04, 0x0e, 0x0e, 0x0e, 0x1f};
char data_symbol_down[7] = {0x1f, 0x0e, 0x0e, 0x0e, 0x04, 0x04, 0x00};

void simbolos (void)
{
int8 i;

lcd_init();
lcd_command(LCD_OFF);
lcd_putc(SYMBOL_1);
lcd_command(CGRAM);
for(i=0;i<=7;i++)
{ lcd_send_byte(1, data_symbol_1[i]); }
for(i=0;i<=7;i++)
{ lcd_send_byte(1, data_symbol_2[i]); }
for(i=0;i<=7;i++)
{ lcd_send_byte(1, data_symbol_3[i]); }
for(i=0;i<=7;i++)
{ lcd_send_byte(1, data_symbol_right[i]); }
for(i=0;i<=7;i++)
{ lcd_send_byte(1, data_symbol_left[i]); }
for(i=0;i<=7;i++)
{ lcd_send_byte(1, data_symbol_up[i]); }
for(i=0;i<=7;i++)
{ lcd_send_byte(1, data_symbol_down[i]); }
}

void main (void)
{
simbolos();
lcd_init();
 while(true)
 {
lcd_gotoxy(1,1);
lcd_putc("W/c");
lcd_putc(SYMBOL_1);
lcd_putc(SYMBOL_2);
lcd_putc(SYMBOL_3);
lcd_putc(S_RIGHT);
lcd_putc(S_LEFT);
lcd_putc(S_UP);
lcd_putc(S_DOWN);
 }
}


Me da la sensación que esta tabulación de los numeros en los #define SYMBOL la provoca mi compilador al abrir el lcd2x16.c que posteaste, pero debe de haber algo mas porque como digo probe a poner estos defines como estaban en los codigos que anteriormente posteaste MLO (vease página 1 de este mismo hilo).
Título: Re: Invalid option: +EXPORT con CCS y mplab
Publicado por: MLO__ en 25 de Mayo de 2008, 15:22:51
Hola.

Los #define SYMBOL son las definiciones de los diferentes simbolos, eso no influye si no en la generacion de un caracter.
Bien....el compilador que yo uso el es PCWHD 4.057 creo que por eso a mi si me acepta la definicion de 4M en lugar de 4000000, tocaria corregir eso. Por si acaso, y solo si de pronto lo olvidaste, el archivo LCDD.C debe ir en la misma carpeta donde esta el archivo lcd2x16.C.

Hagamos el ejercicio del "Hola mundo" y veamos que sucede listo?
El codigo del programa principal es:
Código: [Seleccionar]
#include<18F452.h>
#fuses XT
#use delay(clock=4000000)

#include "LCDD.C"

void main (void)
{
lcd_init();
 while(true)
 {
lcd_gotoxy(1,1);
lcd_putc("Hola mundo");
 }
}

y la libreria LCDD.C ya la tienes, sin embargo la adjunto tambien. Recuerda, dentro de la misma carpeta deben estar los dos archivos: LCDD.C y lcd2x16.C, creas el proyecto y compilas. Adjunto tambien el archivo en proteus.

Saludos amigo.
Título: Re: Invalid option: +EXPORT con CCS y mplab
Publicado por: carafaelet en 31 de Mayo de 2008, 11:24:14
Si, los dos archivos los tengo en la misma carpeta, el que no tengo en la misma carpeta es el de cabecera, es decir el 16F877A.h, pero ese creo que no es necesario que este en la misma carpeta, de hecho a mi nunca me ha dado problemas por tenerlo en otra carpeta y asi lo tengo en comun para todos los proyectos que trabajan con el mismo Pic, evitando tener que copiarlo y tenerlo en la carpeta de cada proyecto. Probado ya el nuevo código con el famoso "Hola mundo", me sigue generando errores, concretamente errores en la liberia LCDD.C. Posteo..

Código: [Seleccionar]
*** Error 103 "D:\Els Meus Documents\Picschool\Ex 16\LCDD.C" Line 75(1,48): Constant out of the valid range  000 is reserved by the compiler
*** Error 48 "D:\Els Meus Documents\Picschool\Ex 16\LCDD.C" Line 75(12,27): Expecting a (
*** Error 43 "D:\Els Meus Documents\Picschool\Ex 16\LCDD.C" Line 75(28,29): Expecting a declaration
*** Error 43 "D:\Els Meus Documents\Picschool\Ex 16\LCDD.C" Line 75(29,30): Expecting a declaration
*** Error 43 "D:\Els Meus Documents\Picschool\Ex 16\LCDD.C" Line 75(31,32): Expecting a declaration
*** Error 43 "D:\Els Meus Documents\Picschool\Ex 16\LCDD.C" Line 75(33,34): Expecting a declaration
*** Error 43 "D:\Els Meus Documents\Picschool\Ex 16\LCDD.C" Line 75(34,38): Expecting a declaration
*** Error 43 "D:\Els Meus Documents\Picschool\Ex 16\LCDD.C" Line 75(39,40): Expecting a declaration
*** Error 43 "D:\Els Meus Documents\Picschool\Ex 16\LCDD.C" Line 75(41,42): Expecting a declaration
*** Error 43 "D:\Els Meus Documents\Picschool\Ex 16\LCDD.C" Line 75(50,51): Expecting a declaration
*** Error 43 "D:\Els Meus Documents\Picschool\Ex 16\LCDD.C" Line 75(51,53): Expecting a declaration
*** Error 43 "D:\Els Meus Documents\Picschool\Ex 16\LCDD.C" Line 75(54,55): Expecting a declaration
*** Error 43 "D:\Els Meus Documents\Picschool\Ex 16\LCDD.C" Line 75(55,56): Expecting a declaration
*** Error 43 "D:\Els Meus Documents\Picschool\Ex 16\LCDD.C" Line 75(56,57): Expecting a declaration
*** Error 43 "D:\Els Meus Documents\Picschool\Ex 16\LCDD.C" Line 75(58,61): Expecting a declaration
*** Error 43 "D:\Els Meus Documents\Picschool\Ex 16\LCDD.C" Line 75(61,62): Expecting a declaration
*** Error 43 "D:\Els Meus Documents\Picschool\Ex 16\LCDD.C" Line 75(63,64): Expecting a declaration
*** Error 43 "D:\Els Meus Documents\Picschool\Ex 16\LCDD.C" Line 75(64,65): Expecting a declaration
*** Error 43 "D:\Els Meus Documents\Picschool\Ex 16\LCDD.C" Line 75(66,67): Expecting a declaration
*** Error 43 "D:\Els Meus Documents\Picschool\Ex 16\LCDD.C" Line 75(67,68): Expecting a declaration
*** Error 43 "D:\Els Meus Documents\Picschool\Ex 16\LCDD.C" Line 75(68,69): Expecting a declaration
*** Error 12 "D:\Els Meus Documents\Picschool\Ex 16\LCDD.C" Line 143(24,39): Undefined identifier   LCD_INIT_STRING
D:\Els Meus Documents\Picschool\Ex 16\lcd2x16.o ===>  22 Errors,  0 Warnings.

Saludos!!
Título: Re: Invalid option: +EXPORT con CCS y mplab
Publicado por: MLO__ en 31 de Mayo de 2008, 13:49:40
Hola.

Pues la verdad no entiendo que sucede, a mi me compila sin ningun error. Para salir de dudas usemos la libreria del CCS en el puerto D, entonces coloca #include <LCD.C> en lugar de #include "LCDD.C" y veamos que sucede. No deberia dar error ya que es la libreria del CCS. Con respecto al .h, no hay problema que este en otra carpeta.

Me parece muy extraño este error:
Código: [Seleccionar]
Constant out of the valid range  000 is reserved by the compiler

No se a que se deba, el resto de errores parecen ser concecuencia del primero.

Saludos
Título: Re: Invalid option: +EXPORT con CCS y mplab
Publicado por: carafaelet en 01 de Junio de 2008, 11:25:29
Efectivamente compañero con la libreria de CCS, es decir, LCD.C, compila sin problemas, pero en cambiar a LCDD.C me salen los errores posteados en el mensaje anterior..  :?
Título: Re: Invalid option: +EXPORT con CCS y mplab
Publicado por: firepic en 01 de Junio de 2008, 12:33:32
Saludos!
Qué tal si pruebas con la librería flex_lcd ? Por allí el maestro Diego RedPic explicó cómo usarla.... y a ver qué tal...
Nos leemos!  :mrgreen:
Título: Re: Invalid option: +EXPORT con CCS y mplab
Publicado por: MLO__ en 03 de Junio de 2008, 14:03:20
Hola.

Oye Fire ... podrias tu probar el ejemplo con la libreria LCDD.C a ver que sucede? Me parece extraño que al amigo carafaelet le den esos errores y a mi no.

Saludos
Título: Re: Invalid option: +EXPORT con CCS y mplab
Publicado por: firepic en 03 de Junio de 2008, 17:21:35
Saludos!
Acabo de probar con el lcdd.c y este código:
Código: [Seleccionar]
#include<18F452.h>
#fuses XT
#use delay(clock=4000000)

#include "LCDD.C"

void main (void)
{
    lcd_init();
 while(true)
 {
    lcd_gotoxy(1,1);
    lcd_putc("Hola mundo");
 }
}
Y compila perfecto.

También probé este:
Código: [Seleccionar]
#include<18F452.h>
#fuses XT
#use delay(clock=4M)

#include "LCDD.C"

#define SYMBOL_1    0
#define SYMBOL_2    1
#define SYMBOL_3    2
#define S_RIGHT        3
#define S_LEFT        4
#define S_UP        5
#define S_DOWN        6

char data_symbol_1[7]         = {0b11111, 0b10001, 0b1010, 0b100, 0b1110, 0b11111, 0b11111};
char data_symbol_2[7]        = {0x0e, 0x07, 0x03, 0x01, 0x03, 0x07, 0x0e};
char data_symbol_3[7]         = {0x00, 0x0f, 0x1f, 0x01, 0x1f, 0x0f, 0x00};
char data_symbol_right[7]     = {0x08, 0x0c, 0x0e, 0x0f, 0x0e, 0x0c, 0x08};
char data_symbol_left[7]     = {0x02, 0x06, 0x0e, 0x1e, 0x0e, 0x06, 0x02};
char data_symbol_up[7]         = {0x00, 0x04, 0x04, 0x0e, 0x0e, 0x0e, 0x1f};
char data_symbol_down[7]     = {0x1f, 0x0e, 0x0e, 0x0e, 0x04, 0x04, 0x00};

void simbolos (void)
{
    int8 i;

    lcd_init();
    lcd_command(LCD_OFF);
    lcd_putc(SYMBOL_1);
    lcd_command(CGRAM);
    for(i=0;i<=7;i++)
    {    lcd_send_byte(1, data_symbol_1[i]);    }
    for(i=0;i<=7;i++)
    {    lcd_send_byte(1, data_symbol_2[i]);    }
    for(i=0;i<=7;i++)
    {    lcd_send_byte(1, data_symbol_3[i]);    }
    for(i=0;i<=7;i++)
    {    lcd_send_byte(1, data_symbol_right[i]);    }
    for(i=0;i<=7;i++)
    {    lcd_send_byte(1, data_symbol_left[i]);    }
    for(i=0;i<=7;i++)
    {    lcd_send_byte(1, data_symbol_up[i]);    }
    for(i=0;i<=7;i++)
    {    lcd_send_byte(1, data_symbol_down[i]);    }
}

void main (void)
{
    simbolos();
    lcd_init();
 while(true)
 {
    lcd_gotoxy(1,1);
    lcd_putc("W/c");
    lcd_putc(SYMBOL_1);
    lcd_putc(SYMBOL_2);
    lcd_putc(SYMBOL_3);
    lcd_putc(S_RIGHT);
    lcd_putc(S_LEFT);
    lcd_putc(S_UP);
    lcd_putc(S_DOWN);
 }
}


Y también compila de lo lindo. 0 Errors, 0 Warnings.
Yo uso el mplab 7.6 y el ccs 4.032

Ok nos leemos!  :mrgreen:
Título: Re: Invalid option: +EXPORT con CCS y mplab
Publicado por: carafaelet en 06 de Junio de 2008, 04:10:11
Firepic he probado la libreria de RedPic y este ha sido el resultado..

Código: [Seleccionar]
Executing: "C:\Archivos de programa\PICC\Ccsc.exe" +FH "lcd2x16.c" +DF +LN +T +A +M +Z +Y=9 +EA
*** Error 12 "D:\Els Meus Documents\Picschool\Ex 16\flex_lcd.c" Line 42(13,20): Undefined identifier   LCD_DB4
*** Error 12 "D:\Els Meus Documents\Picschool\Ex 16\flex_lcd.c" Line 43(13,20): Undefined identifier   LCD_DB5
*** Error 12 "D:\Els Meus Documents\Picschool\Ex 16\flex_lcd.c" Line 44(13,20): Undefined identifier   LCD_DB6
*** Error 12 "D:\Els Meus Documents\Picschool\Ex 16\flex_lcd.c" Line 45(13,20): Undefined identifier   LCD_DB7
*** Error 12 "D:\Els Meus Documents\Picschool\Ex 16\flex_lcd.c" Line 48(14,19): Undefined identifier   LCD_E
*** Error 12 "D:\Els Meus Documents\Picschool\Ex 16\flex_lcd.c" Line 50(13,18): Undefined identifier   LCD_E
*** Error 12 "D:\Els Meus Documents\Picschool\Ex 16\flex_lcd.c" Line 72(13,18): Undefined identifier   LCD_E
*** Error 12 "D:\Els Meus Documents\Picschool\Ex 16\flex_lcd.c" Line 75(18,25): Undefined identifier   LCD_DB4
*** Error 12 "D:\Els Meus Documents\Picschool\Ex 16\flex_lcd.c" Line 76(18,25): Undefined identifier   LCD_DB5
*** Error 12 "D:\Els Meus Documents\Picschool\Ex 16\flex_lcd.c" Line 77(18,25): Undefined identifier   LCD_DB6
*** Error 12 "D:\Els Meus Documents\Picschool\Ex 16\flex_lcd.c" Line 78(18,25): Undefined identifier   LCD_DB7
*** Error 12 "D:\Els Meus Documents\Picschool\Ex 16\flex_lcd.c" Line 80(12,17): Undefined identifier   LCD_E
*** Error 12 "D:\Els Meus Documents\Picschool\Ex 16\flex_lcd.c" Line 95(13,19): Undefined identifier   LCD_RW
*** Error 12 "D:\Els Meus Documents\Picschool\Ex 16\flex_lcd.c" Line 110(12,18): Undefined identifier   LCD_RS
*** Error 12 "D:\Els Meus Documents\Picschool\Ex 16\flex_lcd.c" Line 119(16,22): Undefined identifier   LCD_RS
*** Error 51 "D:\Els Meus Documents\Picschool\Ex 16\flex_lcd.c" Line 120(1,5): A numeric expression must appear here
*** Error 12 "D:\Els Meus Documents\Picschool\Ex 16\flex_lcd.c" Line 126(12,18): Undefined identifier   LCD_RW
*** Error 12 "D:\Els Meus Documents\Picschool\Ex 16\flex_lcd.c" Line 130(12,17): Undefined identifier   LCD_E
*** Error 12 "D:\Els Meus Documents\Picschool\Ex 16\flex_lcd.c" Line 141(12,18): Undefined identifier   LCD_RS
*** Error 12 "D:\Els Meus Documents\Picschool\Ex 16\flex_lcd.c" Line 144(12,18): Undefined identifier   LCD_RW
*** Error 12 "D:\Els Meus Documents\Picschool\Ex 16\flex_lcd.c" Line 147(12,17): Undefined identifier   LCD_E
*** Error 12 "D:\Els Meus Documents\Picschool\Ex 16\flex_lcd.c" Line 226(13,19): Undefined identifier   LCD_RS
*** Error 12 "D:\Els Meus Documents\Picschool\Ex 16\flex_lcd.c" Line 228(12,18): Undefined identifier   LCD_RS
      23 Errors,  0 Warnings.

Es como si no reconociese los "#define xxx", no?
Título: Re: Invalid option: +EXPORT con CCS y mplab
Publicado por: carafaelet en 06 de Junio de 2008, 04:16:12
Estaba pensando tambien de postear la libreria del CCS la LCDD.C para ver si encontrabais diferencia respecto a la que tengais vosotros, es decir, por si la libreria ha cambiado algo entre version y version del compilador. Pero he visto el tema del copyright y el de la reprodución o distribución... y bla bla bla.. La puedo postear aqui en el foro o no esta permitido?
Título: Re: Invalid option: +EXPORT con CCS y mplab
Publicado por: firepic en 06 de Junio de 2008, 10:27:20
Una pregunta tonta carafaelet, estás adjuntando el archivo LCDD.C o FLEXLCD en el mplab?
Ok saludos, nos leemos!  :mrgreen:
Título: Re: Invalid option: +EXPORT con CCS y mplab
Publicado por: carafaelet en 06 de Junio de 2008, 11:03:13
Jejej.. si si.. adjunto los archivos en la carpeta "Source files", es correcto, no? (Aparte de que evidentemente los archivos estan en la misma carpeta donde se encuentra el proyecto).
Título: Re: Invalid option: +EXPORT con CCS y mplab
Publicado por: firepic en 06 de Junio de 2008, 11:12:59
Estás probando con el código "Hola mundo" que te dió MLO_?
Pareciera que el mplab no consiguiera el archivo donde están las definiciones de esas variables. Qué extraño  :shock:
Saludos, nos leemos!  :mrgreen:
Título: Re: Invalid option: +EXPORT con CCS y mplab
Publicado por: MLO__ en 06 de Junio de 2008, 14:37:20
Hola

Yo nunca e adicionado las librerias .C con el Add Source Files en el MPLAB, ya que si lo hago, el compilador me envia errores. Yo solo adiciono desde el Proyect Wizard el archivo fuente y ya, de no tener el codigo fuente lo hago desde el MPLAB con la misma opcion Add Source Files, pero solo adiciono el main, eso si, el archivo LCDD.C siempre esta en la misma carpeta donde esta el archivo fuente, ya que yo coloco asi: #include "LCDD.C", por lo que el compilador busca en la carpeta del proyecto. El MPLAB se encarga de linkear los respectivos .h y .c utilizados.

No se si tu version del CCS carafaelet te este dando lata amigo, me parece muy extraño ya que la unica diferencia entre la libreria del CCS del LCD.C y la LCDD.C son los correpondientes #defines para configurar ciertos comandos del display, como lo son BLINK_ON, DISPLAY_ON, etc y la respectiva funcion para enviarlos lo que da lo mismo colocarlos en el programa principal  :roll:.



Saludos
Título: Re: Invalid option: +EXPORT con CCS y mplab
Publicado por: carafaelet en 06 de Junio de 2008, 17:01:29
Si MLO yo tampoco suelo añadir solamente el programa principal, y el resto ya con includes pues como dices el compilador ya los va "cogiendo".. Pero probé a añadir tambien a LCDD.C cuando empezaron a salir todos estos errores, por si acaso.. pero nada. La verdad esque tiene toda la pinta de ser del compilador, pues no se entiende que no acepte su propia libreria.. y en cambio la lcd2.C que no venia con el compilador, que ha sido desarrollada, si que la acepta..  :?

Si firepic he estado probando el codigo de "hola mundo", mas sencillo imposible, pero me salen los errores donde siempre, en la libreria LCDD.C, voy a buscar a ver si hay algun ejemplo con esta lcd con los progarmas que viene de ejemplo con el compilador.. a ver que ocurre.. y os cuento..