Programación de micros ATMEGA en C

De WikiRobotics
Saltar a: navegación, buscar

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)