Diferencia entre revisiones de «Programación de micros ATMEGA en C»

De WikiRobotics
Saltar a: navegación, buscar
(Página creada con '== Introducción ==')
 
(Licencia)
 
(No se muestran 5 ediciones intermedias del mismo usuario)
Línea 1: Línea 1:
 
== Introducción ==
 
== Introducción ==
 +
{| {{tablabonita}}
 +
| [[Imagen:Icono_aviso.png]] En construcción
 +
|}
 +
 +
== Descarga de programas ==
 +
=== Línea de comandos ===
 +
Ejemplo: Descarga del fichero ledp.hex (en Linux)
 +
 +
avrdude  -patmega168 -carduino -P/dev/ttyUSB0 -b19200 -D -Uflash:w:ledp.hex:i
 +
 +
 +
== Programación ==
 +
=== Grabación usando el USBtiny ===
 +
 +
Grabación de un fichero .hex:
 +
 +
$ sudo avrdude -q -patmega168 -cusbtiny -Uflash:w:ledp.hex:i
 +
 +
Establecimiento de los valores de los fusibles:
 +
 +
$ sudo avrdude  -patmega168 -cusbtiny -U lfuse:w:0xFF:m -U hfuse:w:0xDD:m -U efuse:w:0x00:m
 +
 +
Grabación del BOOTLOADER:
 +
 +
sudo avrdude  -patmega168 -cusbtiny -Uflash:w:/usr/share/arduino/hardware/arduino/bootloaders/atmega/ATmegaBOOT_168_diecimila.hex:i
 +
 +
=== Hello World! (o cómo probar si todo funciona correctamente) ===
 +
 +
Desde que se escribe un programa en C hasta que lo ves funcionando en la SkyMega, hay una serie de pasos a seguir (normalmente llamada toolchain). Esto implica compilar el código fuente, generar un archivo hexadecimal (código máquina, que es lo único que entiende la SkyMega), y "quemar" el AVR con ese binario.
 +
Gracias a un tipo de fichero llamado Makefile, todos esos pasos se reducen a:
 +
$ sudo make burn
 +
Descomprimiendo el .zip [[Media:EjemplosSkymega.zip]] veréis varias carpetas con diferentes ejemplos. Desde terminal, entrad en helloWorld, donde habrá un Makefile y un código fuente (main.c). Si tenéis todo instalado y la placa conectada al ordenador, con alimentación y encendida, sólo hay que escribir (desde dentro de la carpeta helloWorld)
 +
$ sudo make burn
 +
Tras esto, el led de prueba de la Skymega debería parpadear. Enhorabuena! Ahora para aprender a programar sólo tienes que editar el archivo main.c y volver a hacer sudo make burn para ver los cambios en la placa.
 +
 +
Las otras carpetas muestran cómo usar el puerto serie y cómo leer valores analógicos.
 +
 +
== Autores ==
 +
* [[Juan Gonzalez:Main| Juan González-Gómez]]
 +
* [http://iearobotics.com/alberto/doku.php Alberto Valero]
 +
* Sergio Vilches
 +
 +
== Licencia ==
 +
{|
 +
|[[Imagen:GPLv3-logo-red.png|left|150px]]
 +
||El código está liberado bajo la [http://www.viti.es/gnu/licenses/gpl.html licencia GPL v3.0]
 +
|}
 +
 +
== Noticias ==
 +
'''20/Nov/2011''': Comenzada esta página (a partir de la información de otras)
 +
 +
 +
[[Categoría:Skymega]]
 +
[[Categoría:ATMEL]]

Revisión actual del 10:31 20 nov 2011

Introducción

Icono aviso.png En construcción

Descarga de programas

Línea de comandos

Ejemplo: Descarga del fichero ledp.hex (en Linux)

avrdude  -patmega168 -carduino -P/dev/ttyUSB0 -b19200 -D -Uflash:w:ledp.hex:i


Programación

Grabación usando el USBtiny

Grabación de un fichero .hex:

$ sudo avrdude -q -patmega168 -cusbtiny -Uflash:w:ledp.hex:i

Establecimiento de los valores de los fusibles:

$ sudo avrdude  -patmega168 -cusbtiny -U lfuse:w:0xFF:m -U hfuse:w:0xDD:m -U efuse:w:0x00:m

Grabación del BOOTLOADER:

sudo avrdude  -patmega168 -cusbtiny -Uflash:w:/usr/share/arduino/hardware/arduino/bootloaders/atmega/ATmegaBOOT_168_diecimila.hex:i

Hello World! (o cómo probar si todo funciona correctamente)

Desde que se escribe un programa en C hasta que lo ves funcionando en la SkyMega, hay una serie de pasos a seguir (normalmente llamada toolchain). Esto implica compilar el código fuente, generar un archivo hexadecimal (código máquina, que es lo único que entiende la SkyMega), y "quemar" el AVR con ese binario. Gracias a un tipo de fichero llamado Makefile, todos esos pasos se reducen a:

$ sudo make burn

Descomprimiendo el .zip Media:EjemplosSkymega.zip veréis varias carpetas con diferentes ejemplos. Desde terminal, entrad en helloWorld, donde habrá un Makefile y un código fuente (main.c). Si tenéis todo instalado y la placa conectada al ordenador, con alimentación y encendida, sólo hay que escribir (desde dentro de la carpeta helloWorld)

$ sudo make burn

Tras esto, el led de prueba de la Skymega debería parpadear. Enhorabuena! Ahora para aprender a programar sólo tienes que editar el archivo main.c y volver a hacer sudo make burn para ver los cambios en la placa.

Las otras carpetas muestran cómo usar el puerto serie y cómo leer valores analógicos.

Autores

Licencia

150px El código está liberado bajo la licencia GPL v3.0

Noticias

20/Nov/2011: Comenzada esta página (a partir de la información de otras)