Autor Tema: undefined symbol: _Open1USART con HI TECH  (Leído 3350 veces)

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

Desconectado Nirgelep

  • PIC10
  • *
  • Mensajes: 7
undefined symbol: _Open1USART con HI TECH
« en: 27 de Mayo de 2010, 07:44:30 »
Hola:

Estoy haciendo pruebas con el compilador de Hi-Tech y un PIC18f26j50, intentando hacer uso del código que proporciona para el USART. Tengo el problema de que a la hora de compilar el proyecto me aparece:
"Error   [499] ; 0. undefined symbol:
   _Open1USART(26j50_HT.obj)

Desconectado Nirgelep

  • PIC10
  • *
  • Mensajes: 7
undefined symbol: _Open1USART con HI TECH
« Respuesta #1 en: 27 de Mayo de 2010, 07:55:25 »
El código simplificado es el siguiente:

#include <htc.h>
//#include <u1open.c> 

void main(void)
{
   Open1USART( USART_TX_INT_OFF &
      USART_RX_INT_OFF &
      USART_ASYNCH_MODE &
      USART_EIGHT_BIT &
      USART_CONT_RX,
      25);
}

En el MPLAB, Project, Build Options,  tengo marcada la opción de Link in Peripheral Library en la pestaña Linker, y en la pestaña Directories añadida la ruta C:\Archivos de programa\HI-TECH Software\PICC-18\PRO\9.63\sources\plib\usart.
Si descomento la segunda linea del código

    //#include <u1open.c> 

entonces desaparece el error. Mi pregunta es. ¿Para cada función que use tengo que ir cargando el fichero donde se encuentra definida? ¿Hay alguna forma de no tener que estar incluyendo los ficheros en el código?... Aunque creo que la mejor pregunta es... ¿Lo estoy haciendo bien?

Un saludo y gracias.

Desconectado tinchosalamero

  • PIC12
  • **
  • Mensajes: 53
Re: undefined symbol: _Open1USART con HI TECH
« Respuesta #2 en: 27 de Mayo de 2010, 09:22:32 »
Nirgelep,

Convienen incluir el .h que corresponde al periferico, es decir en tu caso el usart.h, ese fichero ya tiene definidas todas la funciones

saludos

Desconectado Nirgelep

  • PIC10
  • *
  • Mensajes: 7
Re: undefined symbol: _Open1USART con HI TECH
« Respuesta #3 en: 27 de Mayo de 2010, 11:09:01 »
Nirgelep,

Convienen incluir el .h que corresponde al periferico, es decir en tu caso el usart.h, ese fichero ya tiene definidas todas la funciones

saludos

Si, también lo intente, pero con los mismos resultados. He probado el ejemplo que aparece en "HI-TECH PIC18 Peripheral Libraries" en la página 76:

  #include <htc.h>
  #include <peripheral/usart.h>
  #include <u1open.c>

  void main(void)
  {
   // configure USART
   Open1USART( USART_TX_INT_OFF &
      USART_RX_INT_OFF &
      USART_ASYNCH_MODE &
      USART_EIGHT_BIT &
      USART_CONT_RX &
      USART_BRGH_HIGH,
      25 );
   while(1)
   {
      while( ! PORTAbits.RA0 ); //wait for RA0 high
      Write1USART( PORTA ); //write value of PORTD
      if(PORTA == 0x80) // check for termination
      break; // value
   }
   Close1USART();
  }


Para que no de error en la compilación y enlace es como si tuviese que añadir además del usart.h, los ficheros de código donde están definido el código de las funciones, o al menos eso me pasa con la función Open1USART.
Tengo que tener algún fallo en las librerias, o en el path, o las opciónes del MPLAB, pero no creo que tenga que estar buscando e incluyendo los ficheros .c donde están las implementadas las funciones.

Un saludo y gracias.

Desconectado tinchosalamero

  • PIC12
  • **
  • Mensajes: 53
Re: undefined symbol: _Open1USART con HI TECH
« Respuesta #4 en: 27 de Mayo de 2010, 13:44:52 »
lo que generalmente hago es copiar el usart.h de Hitech al directorio del proyecto, y lo incluis como
#include "usart.h" asi no dependes de las rutas de acceso al compilador y para mayor seguridad agregalo tambien en los Header del proyecto.

si esto no funciona subi un .rar con todo directorio de proyecto y vemos que se puede hacer

saludos

Desconectado Nirgelep

  • PIC10
  • *
  • Mensajes: 7
Re: undefined symbol: _Open1USART con HI TECH
« Respuesta #5 en: 27 de Mayo de 2010, 14:04:24 »
lo que generalmente hago es copiar el usart.h de Hitech al directorio del proyecto, y lo incluis como
#include "usart.h" asi no dependes de las rutas de acceso al compilador y para mayor seguridad agregalo tambien en los Header del proyecto.

si esto no funciona subi un .rar con todo directorio de proyecto y vemos que se puede hacer

saludos

También lo he intentado pero sigue igual. Adjunto el proyecto, 26j50_HT.mcp.

Un saludo.

Desconectado tinchosalamero

  • PIC12
  • **
  • Mensajes: 53
Re: undefined symbol: _Open1USART con HI TECH
« Respuesta #6 en: 28 de Mayo de 2010, 11:21:01 »
ya lo baje, pero en esta PC no tengo instalado el Hi  tech, en cuanto pueda lo veo

saludos


 

anything