Solución de problemas de Eclipse IDE para Arduino

1

He estado usando Arduino IDE por algún tiempo con mi Arduino Uno. Recientemente escuché sobre Eclipse y pensé en darle una oportunidad. Descargué la versión c ++ e instalé el complemento AVR. Luego intenté configurarlo siguiendo las instrucciones desde aquí: enlace

Cuando se compiló la biblioteca, hubo un error acerca de 'arduino.h' no encontrado. Cuando copié ese archivo a la biblioteca principal, ahora había más errores.

Luego descargué el ejemplo de Eclipse blink de enlace . Viene con su propia biblioteca de núcleo arduino y compilado sin problemas. Luego lo subí a Arduino Uno dentro del propio Eclipse. Todo salió bien, excepto que el led en el Uno no está parpadeando. Simplemente se queda en ON.

He intentado cargar el archivo HEX compilado con otro programa, pero el resultado es el mismo. Por favor, ayúdame a descubrir qué está mal aquí ...

Si hay alguien por ahí que haya integrado con éxito arduino 1.0 con la última versión de Eclipse en Windows 7, publique la URL que ha mencionado.

EDITAR: Finalmente compilé un proyecto de blinky sin errores. Pero todavía hay un error en el proyecto CoreLibrary. Aquí está la captura de pantalla:

    
pregunta 0xakhil

2 respuestas

3

Acabo de crear el núcleo Arduino 1.0 como una biblioteca estática en Eclipse y usando Windows 7. Una cosa que no mencionaste es que también debes obtener pins_arduino.h de algún lugar. Para el Uno, que usa el ATMega328P, creo que creo que quieres la variante "estándar".

  • Copié en el proyecto de biblioteca estática todos los archivos de: hardware \ arduino \ cores \ arduino
  • También copié en el proyecto de biblioteca estática el archivo pins_arduino.h de: hardware \ arduino \ variantes \ estándar

¿Podría ser que acaba de obtener el archivo pins_arduino.h incorrecto para su chip de destino? También está seguro de que tiene la velocidad correcta de chip y reloj seleccionada en Configuración del proyecto = > AVR = > ¿Hardware de destino?

Eliminaré el proyecto de la biblioteca estática de Arduino Core, comenzaré de nuevo descargando el archivo zip Arduino 1.0 de arduino.cc y crearé un nuevo proyecto desde cero. Acabo de rehacer el proceso un par de veces para asegurarme de que no haya problemas y es bastante rápido aplicar la configuración del proyecto una vez que lo haya hecho una vez (me tomó < 5 minutos la segunda vez).

Editar WProgram.h está en desuso en Arduino 1.0. Este ha sido reemplazado por Arduino.h. Las bibliotecas de Arduino deben admitir tanto a través de #defines en la constante ARDUINO como se describe aquí . Debe definir ARDUINO para el compilador también en su proyecto principal, lo que haría en Configuración del proyecto = > Compilador AVR = > Símbolos y configuración del proyecto = > Compilador AVR C ++ = > Símbolos respectivamente. Vas a querer agregar un nuevo Define Syms (-D) llamado ARDUINO con valor 100 en ambos lugares que creo (ARDUINO = 100).

Editar 2 También tuve que incluir explícitamente Arduino.h en la parte superior de mi archivo de origen blink.cpp (donde se definen la configuración y el bucle), no estoy seguro de cómo evitar los errores del compilador sin él.

Editar 3 Si necesita utilizar las bibliotecas de Arduino, debe colocar los archivos cpp y h de la carpeta raíz de la biblioteca de Arduino en la carpeta de origen de arduinolib, y cualquier archivo de cpp y h de la carpeta de la utilidad de la biblioteca de Arduino en una carpeta de arduinolib / utilidad e incluir tanto arduinolib como arduinolib / utility en el directorio del proyecto incluyen rutas (a Configuración del proyecto = > C / C ++ Build = > Configuración = > Configuración de la herramienta = > Compilador AVR = > Configuración de directorios y Proyecto = > C / C ++ Compilación = > Configuración = > Configuración de la herramienta = > Compilador AVR C ++ = > Directorios). Debería solo incluir las bibliotecas en esta carpeta que realmente usa o la imagen se hinchará, probablemente a través de las declaraciones de variables globales de cada biblioteca. Probablemente, una mejor manera de hacerlo es tener proyectos de biblioteca estática separados para cada biblioteca de Arduino que quiera usar y colocar una dependencia de proyecto de su proyecto principal, pero eso es un poco más de trabajo (aunque a la larga podría dar resultado).

    
respondido por el vicatcu
2

En Linux, antes de que Eclipse funcionara correctamente, tuve que revisar las preferencias y cambiar todas las rutas de Arduino de "personalizado" a "sistema":

Verifiquesusrutas,especialmenteparalaentrada"Archivos de encabezado AVR".

    
respondido por el Majenko

Lea otras preguntas en las etiquetas