Programación de micros ATMEGA en C
Contenido
Introducció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 González-Gómez
- Alberto Valero
- Sergio Vilches