Autor Tema: MPLAB X - Unable to resolve identifier  (Leído 11704 veces)

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

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
MPLAB X - Unable to resolve identifier
« en: 23 de Junio de 2013, 18:00:17 »
Hola

Estoy usando MPLAB X por primera vez para compilar un ejemplo USB para el PIC18F2550. Después de batallar por horas con XC8, mejor instalé C18 y sólo así pude compilarlo.

El único problema que no he podido resolver son los "Unable to resolve identifier" que salen en todo el código.

http://s9.postimg.org/53uui8ej3/mplabx.png


Intenté lo que sugieren acá...
http://www.microchip.com/forums/m666549-print.aspx

Pero no me funcionó. ¿Alguien sabe cómo resolverlo? No quisiera deshabilitarlo por default ya que son prácticos esos errores mientras sean ciertos.

Gracias.

Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re: MPLAB X - Unable to resolve identifier
« Respuesta #1 en: 23 de Junio de 2013, 18:24:01 »
tendrias que poner el codigo completo, tiene pinta de ser que le falta algun #include

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: MPLAB X - Unable to resolve identifier
« Respuesta #2 en: 23 de Junio de 2013, 18:43:36 »
tendrias que poner el codigo completo, tiene pinta de ser que le falta algun #include

Hola, no creo porque el código compila correctamente. Es problema de visibilidad de NetBeans.  :?

Olvidé mencionar que el Control + Click tampoco funciona, no me lleva a la declaración o la definición del elemento... :(
« Última modificación: 23 de Junio de 2013, 18:49:43 por migsantiago »

Desconectado Rseliman

  • PIC16
  • ***
  • Mensajes: 239
Re: MPLAB X - Unable to resolve identifier
« Respuesta #3 en: 23 de Junio de 2013, 19:42:51 »
tendrias que poner el codigo completo, tiene pinta de ser que le falta algun #include

Hola, no creo porque el código compila correctamente. Es problema de visibilidad de NetBeans.  :?

Olvidé mencionar que el Control + Click tampoco funciona, no me lleva a la declaración o la definición del elemento... :(


Podrias postear el  printScreen completo del IDE ...con el arbol abierto del project ??

Gracias
Las Grandes Obras las sueñan los grandes locos , mientras los inutiles las critican !!

Desconectado gab163

  • PIC16
  • ***
  • Mensajes: 111
Re: MPLAB X - Unable to resolve identifier
« Respuesta #4 en: 23 de Junio de 2013, 19:49:25 »
Intenta esto te vas al menú Tools después das clic en Options y te aparecera la siguiente pantalla te metes en C/C++ como se ve en la imagen y desmarcas la casilla que esta igual desmarcada. espero que te sirva  :-/

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: MPLAB X - Unable to resolve identifier
« Respuesta #5 en: 23 de Junio de 2013, 20:34:54 »
Podrias postear el  printScreen completo del IDE ...con el arbol abierto del project ??

Gracias

Claro, aquí está...

http://s22.postimg.org/hfa8gsmep/mplab_x_unresolved_identifiers.png

Estas son las rutas que tengo en el include de C18...

http://s2.postimg.org/mq24ha7s9/includes.png


Intenta esto te vas al menú Tools después das clic en Options y te aparecera la siguiente pantalla te metes en C/C++ como se ve en la imagen y desmarcas la casilla que esta igual desmarcada. espero que te sirva  :-/

Hola, gracias, pero como comentaba arriba, quiero que los resuelva porque me interesan. No quiero deshabilitarlos, quiero que se corrijan.
« Última modificación: 23 de Junio de 2013, 20:37:33 por migsantiago »

Desconectado Rseliman

  • PIC16
  • ***
  • Mensajes: 239
Re: MPLAB X - Unable to resolve identifier
« Respuesta #6 en: 23 de Junio de 2013, 20:58:50 »
Podrias postear el  printScreen completo del IDE ...con el arbol abierto del project ??

Gracias

Claro, aquí está...

http://s22.postimg.org/hfa8gsmep/mplab_x_unresolved_identifiers.png

Estas son las rutas que tengo en el include de C18...

http://s2.postimg.org/mq24ha7s9/includes.png


/quote]

Mira soy muy nuevo en Mplabx Y xc8 que es lo que estoy usando ahora , pero lo que genera muchos problemas es tener las subrutinas en el project ...no se si me explico ...por ejemplo si vas a usar una subrutina o libreria que se llama subru.c ....yo no la agrego en el project simplemente la uso con #include subru.c porsupuesto esta esta en la carpeta del proyecto ...y de esa forma he solucionado muchos problemas ...la verdas es que todavia no entiendo bien como el MPLABX se maneja incluyendo en el arbol de la izquierda pero he intentado con cosas sencillas y genera problemas yo solamente pongo en el source del arbol , el main.c y el configurations_bits .c que se refiere a los prgama que definen los fuses ..

Espero poder ayudarte ...esto lo digo con mi poca experiencia ...

Saludos
« Última modificación: 23 de Junio de 2013, 21:02:44 por Rseliman »
Las Grandes Obras las sueñan los grandes locos , mientras los inutiles las critican !!

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: MPLAB X - Unable to resolve identifier
« Respuesta #7 en: 23 de Junio de 2013, 22:32:50 »
Mira soy muy nuevo en Mplabx Y xc8 que es lo que estoy usando ahora , pero lo que genera muchos problemas es tener las subrutinas en el project ...no se si me explico ...por ejemplo si vas a usar una subrutina o libreria que se llama subru.c ....yo no la agrego en el project simplemente la uso con #include subru.c porsupuesto esta esta en la carpeta del proyecto ...y de esa forma he solucionado muchos problemas ...la verdas es que todavia no entiendo bien como el MPLABX se maneja incluyendo en el arbol de la izquierda pero he intentado con cosas sencillas y genera problemas yo solamente pongo en el source del arbol , el main.c y el configurations_bits .c que se refiere a los prgama que definen los fuses ..

Espero poder ayudarte ...esto lo digo con mi poca experiencia ...

Saludos

Sí, yo también hacía eso hace tiempo... agregaba los C como includes. Pero por arquitectura y limpieza, sólo deben incluirse los H.

Es otra cosa... y pues como es el primer día que lo uso pues aún no le hallo jeje

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: MPLAB X - Unable to resolve identifier
« Respuesta #8 en: 23 de Junio de 2013, 23:31:00 »
Bueno, pues parece que agregando un main.h nuevo a los headers se solucionó el glitch. De repente estaba haciendo el nuevo H y vi que el main.c ya no tenía los errores.

Ah qué cosas  :D

Desconectado jukinch

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 608
Re: MPLAB X - Unable to resolve identifier
« Respuesta #9 en: 24 de Junio de 2013, 00:39:27 »
Hola Migsantiago. No entiendo bien como lo has solucionado. Podrías explicarlo con más detalle.?
    Podrías subir el archivo main.h que incluiste en los headers. O es sólo un archivo vacio lo que incluyes.?

"Divide las dificultades que examinas en tantas partes como sea posible para su mejor solución." -René Descartes

Desconectado jukinch

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 608
Re: MPLAB X - Unable to resolve identifier
« Respuesta #10 en: 25 de Junio de 2013, 01:18:57 »
Con estas dos directivas se me fueron todos los unable to resolve identifiers :-/

#define __18CXX // con esta solucioné los de la libreria de los delays
#define __18F4550 // y con esta los de las funciones de la usart y de los adc

Pareciera que el IDE no define correctamente el pic seleccionado en el proyecto.  :5]
agregúe al principio de mi archivo  main.c estos dos defines



Creo que el problema está en que si no se los define a mano el preprocesador no expande el código correspondiente a nuestro pic dentro del archivo pconfig.h:

Código: [Seleccionar]
#ifdef   __18F4550
/*############################################################*/
/*          Configuration for device =  'PIC18F4550'          */
/*############################################################*/

/* ADC */
#define ADC_V5

/* ECC */
/*No configuration chosen for this peripheral*/

/* CC */
#define CC_V2

/* EPWM */
#define PWM_V5

/* PWM */
#define PWM_V5

/* PCPWM */
/*No configuration chosen for this peripheral*/

/* USART */
#define EAUSART_V5

/* SPI */
#define SPI_V1

/* I2C */
#define I2C_V1

/* TIMERS */
#define TMR_V2

/* EEPROM */
#define EEP_V2

/* PORT_B */
#define PTB_V1

/* ANCOMP */
#define ANCOM_V3

/* MWIRE */
#define MWIRE_V1

/* CTMU */
/*No configuration chosen for this peripheral*/

/* PPS */
/*No configuration chosen for this peripheral*/

/* RTCC */
/*No configuration chosen for this peripheral*/

/* DPSLP */
/*No configuration chosen for this peripheral*/

/* PMP */
/*No configuration chosen for this peripheral*/

/* FLASH */
#define FLASH_V1_2

#endif

Y por ello dentro de los headers de los periféricos se saltean los prototipos de las funciones.

Es necesario que estén definidas las versiones de cada uno de ellos por ejemplo en mi 4550 #define ADC_V5 . De lo contrario se saltean los prototipos de las funciones.

Como por ejemplo la de OpenADC en el header adc.h

Código: [Seleccionar]
#elif defined (ADC_V3) || defined (ADC_V4) || defined (ADC_V5) || defined (ADC_V6) ||\
      defined (ADC_V7) || defined (ADC_V7_1)|| defined (ADC_V12) || defined (ADC_V13)\
 || defined (ADC_V13_1) || defined (ADC_V13_2) || defined (ADC_V13_3) || \
 defined (ADC_V14) || defined (ADC_V14_1) || defined (ADC_V14_2) || defined (ADC_V14_3)

void OpenADC ( unsigned char ,
               unsigned char ,
               unsigned char );
« Última modificación: 25 de Junio de 2013, 01:22:03 por jukinch »
"Divide las dificultades que examinas en tantas partes como sea posible para su mejor solución." -René Descartes

Desconectado AKENAFAB

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3227
Re: MPLAB X - Unable to resolve identifier
« Respuesta #11 en: 25 de Junio de 2013, 12:59:18 »
Bueno, pues parece que agregando un main.h nuevo a los headers se solucionó el glitch. De repente estaba haciendo el nuevo H y vi que el main.c ya no tenía los errores.

Ah qué cosas  :D

Que bueno que lo solucionaste Mig.

Como dices no es problema del compilador , sino de la interface que no reconoce algunas cosillas,a veces me marca lo mismo y despues de un tiempo se van  :shock: .
Uso XC8 con los pic18F

Saludos!

Desconectado hector915

  • PIC12
  • **
  • Mensajes: 78
    • Blog Personal.
Re: MPLAB X - Unable to resolve identifier
« Respuesta #12 en: 25 de Junio de 2013, 14:28:25 »
Generalmente ese error siempre sale cuando no puede encontrar y resolver las librerias que estan en el proyecto, la libreria que has incluido no la reconoce(el path) , la forma como lo solucionaste es raro, aunque sigo preguntando por que,en fin.
if you can imagine it, you can embed it

Desconectado Rseliman

  • PIC16
  • ***
  • Mensajes: 239
Re: MPLAB X - Unable to resolve identifier
« Respuesta #13 en: 26 de Junio de 2013, 14:05:11 »
Generalmente ese error siempre sale cuando no puede encontrar y resolver las librerias que estan en el proyecto, la libreria que has incluido no la reconoce(el path) , la forma como lo solucionaste es raro, aunque sigo preguntando por que,en fin.

Yo creo que una forma de solucionarlo es poner los .h en la carpeta del proyecto , y fijarse que no son los mismos .h los de xc18 que los de xc8 ...a mi me ha pasado que cuando los incluyo con < > se refiere a los de xc8 y no funciona , entonces le pongo en la carpeta del proyecto la lib.h de xc18 o visceversa

Saludos
Las Grandes Obras las sueñan los grandes locos , mientras los inutiles las critican !!

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: MPLAB X - Unable to resolve identifier
« Respuesta #14 en: 29 de Junio de 2013, 18:01:27 »
Hola  :mrgreen:

Jukinch, sí, se soluciona de esa forma, pero el ambiente debería intuir que el compilador es C18 y no tendríamos nosotros que definirlo a mano.

Akenafab, un gusto leerte :P Sí, ahorita tuve que usar C18 porque XC8 se puso rudo y no me dejó trabajar  :?

Hector915, sí, para cuando volteé y vi el main.c después de haber agregado el main.h, todo se había resuelto. No sé qué haya pasado jeje