Para poner en antecedentes a otros de la lista, Miguel Ángel está
intentando compilar el software micro-osciladores[1] para mover robots
modulares.
Antes de nada te quería comentar que yo no soy usuario de Windows.
Hace muchos años que no lo uso y casi no lo sé manejar. Tampoco tengo ni
en la Universidad ni en casa una máquina Windows donde hacer pruebas.
Por eso espero que la gente de la lista aporte su granito de arena :-)
Vamos primero a compilar a través de la línea de comandos, para
comprobar que lo tienes todo bien instalado y que realmente compila.
Luego ya veremos cómo se compila desde el Programer's notepad (yo no
tengo experiencia en su manejo).
Abre una consola de comandos (se llama Símbolo del sistema en
Windows?) y ve al directorio donde tienes el software de los
micro-osciladores.
Primero ejecuta este comando, para verificar que el SDCC está
accesible desde el path y que tienes la versión correcta:
sdcc -v
Ahora vamos a compilar el programa "hola mundo" de la oscilación: el
test-oscillator8.c que hace oscilar los servos que tengas conectados.
Este programa depende de los ficheros servos.c y sin.c por lo que hay
que compilarlos primero. Ejecuta:
sdcc -Wl-m -Wl-ainhx8m -mpic14 -p16f876a -c -o sin.o sin.c
Ahora compilamos los otros ficheros:
sdcc -Wl-m -Wl-ainhx8m -mpic14 -p16f876a -c -o servos.o servos.c
sdcc -Wl-m -Wl-ainhx8m -mpic14 -p16f876a -c -o test-oscillator8.o
test-oscillator8.c
El último paso es linkarlo todo para obtener el fichero
test-oscillator8.hex que es el que hay que descargar en la
Skycube/skypic:
sdcc -Wl-m -Wl-ainhx8m -mpic14 -p16f876a libm.lib -o test-oscillator8
test-oscillator8.o servos.o sin.o
Debería aparecer ahora el fichero test-oscillator8.hex. ¿Lo tienes?
Saludos, Juan
[1]http://www.iearobotics.com/wiki/index.php?title=Micro-osciladores
--
Blog: www.iearobotics.com/blog
Web: www.iearobotics.com/juan
El SDCC es libre (y también gratuito). Libre significa que están
disponibles todas las fuentes para que cualquier desarrollador del mundo
lo pueda estudiar, modificar y mejorar. Yo lo uso por ser libre (El CCS
en realidad es gratuito ;-). No conozco a nadie que haya pagado la
licencia).
Primero tienes que ponerlo en marcha en la línea de comandos y luego
lo podrás invocar desde otros IDEs, como el programmers notepad,
CodeBlock, Eclipse o el que más te guste. Y para compilar sólo tendrás
que apretar un botón.
Para compilar micro-osciladores tienes que instalar la versión SDCC
2.8 o superior.
Necesito que ejecutes este comando en la línea de comandos y me digas
qué es lo que te sale:
sdcc -v
Casi seguro que el error que te aparece es porque tienes una versión
antigua, pero lo tengo que verificar.
Saludos, Juan
PD.- Este grupo en realidad es una lista de correo. Lo puedes usar bien
a través de interfaz web o bien como si enviases correos ordinarios a la
dirección skyl...@googlegroups.com. Para mandar las imágenes lo haces
igual que enviando un correo ordinario (las pones como imágenes
adjuntas)
El jue, 29-07-2010 a las 09:31 -0700, MA_BLACK escribió:
> Puedo mandar un email, y aparece en la lista? es que es la primera vez
> que uso los grupos de google.
Sí. De hecho yo sólo lo uso a través de mi gestor de correo, no me suelo
conectar a la página el grupo
> Como se en que debate aparecera el
> email?
Google lo clasifica automáticamente a través del Asunto. Abre tu gestor
de correo. Selecciona el mensaje que quieres responder (por ejemplo
este) y haz un reply. Escribe el mensaje como si me lo estuvieses
enviando personalmente a mí, pero lo recibirán todos los miembros
apuntados a la lista y a su vez se clasificará en la página web del
grupo.
Saludos, Juan
El 30/07/10 16:03, Miguel Angel escribi�:
> Funciona mandar emails al grupo? Este es el primero.
>
> -----Mensaje original-----
> De: skyl...@googlegroups.com [mailto:skyl...@googlegroups.com] En nombre
> de Juan Gonzalez
> Enviado el: jueves, 29 de julio de 2010 18:47
> Para: skyl...@googlegroups.com
> Asunto: Re: c�mo compilar micro-osciladores
>
> Hola Miguel Angel,
>
> El jue, 29-07-2010 a las 09:31 -0700, MA_BLACK escribi�:
>
>> Puedo mandar un email, y aparece en la lista? es que es la primera vez
>> que uso los grupos de google.
>>
> S�. De hecho yo s�lo lo uso a trav�s de mi gestor de correo, no me suelo
> conectar a la p�gina el grupo
>
>
>> Como se en que debate aparecera el
>> email?
>>
> Google lo clasifica autom�ticamente a trav�s del Asunto. Abre tu gestor
> de correo. Selecciona el mensaje que quieres responder (por ejemplo
> este) y haz un reply. Escribe el mensaje como si me lo estuvieses
> enviando personalmente a m�, pero lo recibir�n todos los miembros
> apuntados a la lista y a su vez se clasificar� en la p�gina web del
> grupo.
>
> Saludos, Juan
>
>
>
> "C:\Program Files (x86)\SDCC\bin\sdcc.exe" -mpic14 -p16f876a test-PP1.c
message: using default linker script "C:\Program Files
(x86)\gputils\lkr\16f876a.lkr"
error: missing definition for symbol "_oscillator_calculate", required by
"test-PP1.o"
error: missing definition for symbol "_servos_intr", required by
"test-PP1.o"
error: missing definition for symbol "_oscillator_init", required by
"test-PP1.o"
error: missing definition for symbol "_servos_init", required by
"test-PP1.o"
> Process Exit Code: 1
> Time Taken: 00:01
__________ Información de ESET NOD32 Antivirus, versión de la base de firmas
de virus 5341 (20100804) __________
ESET NOD32 Antivirus ha comprobado este mensaje.
En el primer caso te tienes que crear la opción para compilar, en el
segundo caso no lo se.
En la documentación de instalacion del software del skybot (en
iearobotics) tienes una guía para hacerlo. Ahora mismo no tengo el
enlace, pero si no lo encuentras dimelo que y te lo paso mañana.
Andres
Sent from Mobile
El 05/08/2010, a las 08:22, "Miguel Angel" <maberna...@gmail.com>
escribió:
> --
> Has recibido este mensaje porque estás suscrito al grupo "Skylist" d
> e Grupos de Google.
> Para publicar una entrada en este grupo, envía un correo electrónico
> a skyl...@googlegroups.com.
> Para anular tu suscripción a este grupo, envía un correo
> electrónico a skylista+u...@googlegroups.com
> Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/skylista?hl=e
> s.
>
-----Mensaje original-----
De: skyl...@googlegroups.com [mailto:skyl...@googlegroups.com] En nombre
de Andres Prieto-Moreno Torres
Enviado el: domingo, 08 de agosto de 2010 10:47
Para: skyl...@googlegroups.com
CC: <skyl...@googlegroups.com>
Asunto: Re: cómo compilar micro-osciladores
Andres
Sent from Mobile
--
Has recibido este mensaje porque estás suscrito al grupo "Skylist" de Grupos
de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a
skyl...@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a
skylista+u...@googlegroups.com
Para tener acceso a más opciones, visita el grupo en
http://groups.google.com/group/skylista?hl=es.
__________ Información de ESET NOD32 Antivirus, versión de la base de firmas
de virus 5351 (20100809) __________
ESET NOD32 Antivirus ha comprobado este mensaje.
__________ Información de ESET NOD32 Antivirus, versión de la base de firmas
de virus 5351 (20100809) __________
Puedes mandar el error que te sale? Y el path del sistema?
Andres
Sent from Mobile
El 09/08/2010, a las 11:20, "Miguel Angel" <maberna...@gmail.com>
escribió:
> http://groups.google.com/group/skylista?hl=es.
>
>
> __________ Información de ESET NOD32 Antivirus, versión de la base d
> e firmas
> de virus 5351 (20100809) __________
>
> ESET NOD32 Antivirus ha comprobado este mensaje.
>
> http://www.eset.com
>
>
>
> __________ Información de ESET NOD32 Antivirus, versión de la base d
> e firmas
> de virus 5351 (20100809) __________
>
> ESET NOD32 Antivirus ha comprobado este mensaje.
>
> http://www.eset.com
>
>
Voy a instalar un windows en la máquina virtual, instalar el notepad y
compilar micro-osciladores. Cuando lo tenga te cuento.
Saludos, Juan
Tal como tienes instalado el notepad ahora, sólo puedes compilar un
único programa formado por un fichero .c. En el caso de
micro-osciladores tienes que compilar el programa de usuario con varias
librerías.
Esto se hace de manera muy fácil con la herramienta make, sin embargo
creo que será más sencillo para tí usar archivos .bat.
Primero configura el notepad para compilar los ejemplos del skybot
hechos por Javier Valiente. Así verás cómo es el archivo .bat a crear.
Luego habrá que modificarlo para compilar micro-osciladores.
Así que los pasos son:
1) Configura el notepad como se indica en este documento:
http://www.iearobotics.com/talleres/generico-v14/sesion-3/windows/SDCC_config.pdf
2) Bájate estos ejemplos para el skybot:
http://www.iearobotics.com/talleres/generico-v14/sesion-3/ejemplos/download/ejemplos1-windows.zip
3) Descomprímelos en tu directorio de trabajo. Yo los he descomprimido
en C:\robótica
4) Abre con el Programers notepad uno de los ejemplos, por ejemplo el
ejemplo1
5) Ve a tools y pulsa en la opción "sdcc con libreria auxiliar y
libreria timer"
Se te compilará y en la carpeta tendrás el ejemplo1.hex.
Prueba que esto te funciona (y que obtienes correctamente el fichero
ejemplo1.hex).
El siguiente paso es modificar el fichero crear_ejecutable.bat para
que se compile con las librerías de micro-osciladores.
Cuando tenga un hueco creo uno, lo pruebo y te lo envío. Yo no soy
usuario de Windows, por lo que me llevará un tiempo.
Saludos, Juan
Ok, juan he probado y funciona ok hasta aquí, me faltaría modificar el .bat como dices para los programas de skycube.
Mientras me he creado un compilador manual, que por lo menos es mas sencillo que estar con la línea de comandos. Lo he hecho en Labview que es la herramienta que mas uso en programación. Y la verdad me funciona bien, te pongo una captura por si le sirve a alguien.
1-Añades hasta 4 archivos adjuntos y los puedes compilar por separado, para crear los .o y con un led te indica si existen los archivos.
2-Luego el principal lo puedes compilar también, y lo linkas todo.
3-Auto rellenar es para rellenar los adjuntos que contiene el principal.
4-Salida de consola es lo que se muestra en el terminal al compilar.
5-Y la pestaña Programa principal es el código del programa principal.
>
> Mientras me he creado un compilador manual, que por lo menos es mas
> sencillo que estar con la línea de comandos. Lo he hecho en Labview
> que es la herramienta que mas uso en programación. Y la verdad me
> funciona bien, te pongo una captura por si le sirve a alguien.
¡Muy interesante! No conocía el Labview. ¿Es multiplataforma?
Te envío un pantallazo del fichero crear_ejecutable.bat que tienes que
crear para compilar algunos de los ejemplos de micro-osciladores.
Pruébalo con el ejemplo test-osciladores8.c. Te debería compilar sin
problemas.
Ahora me tengo que ir y hasta esta noche no estaré on-line. En cuanto
pueda te hago un mini-tutorial sobre cómo usar micro-osciladores para la
locomoción de Minicube-I. Ya verás qué fácil es ;-)
Saludos, Juan
Enviado desde mi iPod
El 14/08/2010, a las 11:33, Juan Gonzalez <ju...@iearobotics.com>
escribió:
> --
> Has recibido este mensaje porque estás suscrito al grupo "Skylist" d
> e Grupos de Google.
> Para publicar una entrada en este grupo, envía un correo electrónico
> a skyl...@googlegroups.com.
> Para anular tu suscripción a este grupo, envía un correo
> electrónico a skylista+u...@googlegroups.com
> Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/skylista?hl=e
> s.
>
> <p-notepads-screenshot-1.jpg>
Gracias.
__________ Información de ESET NOD32 Antivirus, versión de la base de firmas
de virus 5394 (20100824) __________
He compilado pero me dice que el puerto E no esta definido, porque compila con codeblocks pero con la gputil del 16f876a, como se cambia el pic? Para que seleccione otro el compilador, porque lo he cambiado en define pero no hace nada.
--
Hola juan el error me da al compilar un programa para el pic.
El bootloader lo he grabado tal cual, y todo ok.
Puedo compilar desde la consola de Windows con sdcc –Wl-m –Wl-ainhx8m –mpic –p16f877a –c –o ……. Pero no puedo compilar desde el codeblocks porque linka con 16f876a, como puedo cambiar en el codeblock el pic que linka.
Me va ok y lo he compilado pero desde la línea de comandos no desde el codeblock.
De:
skyl...@googlegroups.com [mailto:skyl...@googlegroups.com] En nombre de Juan
Gonzalez Gomez
Enviado el: miércoles, 25 de agosto de 2010 13:07
Para: skyl...@googlegroups.com
Asunto: Re: cómo compilar micro-osciladores
El error que te da es porque el bootloader está escrito en ensamblador y no en C. No lo puedes compilar desde el CodeBlocks. Lo tienes que hacer desde la línea de comandos con el siguiente comando:
__________ Información de ESET NOD32 Antivirus, versión de la base de firmas de virus 5396 (20100825) __________
Creo que el problema es que no se como crear un proyecto nuevo en codeblocks para el pic 16f877.
--
No lo encuentro donde dices y al compilar me da esto:
Compiling: ledon.c
Linking native: bin\Release\.sys
message: using default linker script "C:\Program Files (x86)\gputils\lkr\16f876a.lkr"
error: missing definition for symbol "_PORTE_bits", required by "obj\Release\ledon.rel"
Process terminated with status 1 (0 minutes, 0 seconds)
0 errors, 0 warnings
De:
skyl...@googlegroups.com [mailto:skyl...@googlegroups.com] En nombre de Juan
Gonzalez Gomez
Enviado el: miércoles, 25 de agosto de 2010 22:41
Para: skyl...@googlegroups.com
Asunto: Re: cómo compilar micro-osciladores
Hola,
__________ Información de ESET NOD32 Antivirus, versión de la base de firmas de virus 5398 (20100826) __________
Hola juan solucionado, no estaba puesto bien en su sitio, gracias.
Cuando hago un proyecto nuevo que tipo es y como lo configuro.
De:
skyl...@googlegroups.com [mailto:skyl...@googlegroups.com] En nombre de Juan
Gonzalez Gomez
Enviado el: miércoles, 25 de agosto de 2010 22:41
Para: skyl...@googlegroups.com
Asunto: Re: cómo compilar micro-osciladores
Hola,
__________ Información de ESET NOD32 Antivirus, versión de la base de firmas de virus 5398 (20100826) __________