Pues de nuevo me encuentro escribiendo un pequeño manual esperando ayudar a estudiantes que se hayan visto en el mismo problema que yo, que es el programar un microcontrolador usando lenguaje C en una distribución de linux, en mi caso Ubuntu.
Para esto solo usaremos dos herramientas que ya están incluidas en nuestro sistema, las cuales son:
- Un editor de texto plano (gedit, kate, etc.)
- Terminal
Instalamos lo siguiente:
sudo apt-get install avr-libc binutils-avr avrdude gcc gcc-avr
Ahora si, ya podemos empezar a programar.
Para ver la manera de compilar nuestro programa y generar el archivo .hex desde la terminal, haremos un programa sencillo que enciende y apaga un led.
Abrimos nuestro editor de texto y copiamos el siguiente codigo:
#include <avr/io.h>
#include <avr/iom8535.h> //biblioteca para el atmega8535
#define F_CPU 1000000UL
#include <util/delay.h>
int main(void)
{
DDRB = 0x01; //pone portb para salida
while(1){
PORTB = 0b00000001; //prende el led inicialmente
_delay_ms(250); //esperamos 250 mili-segundos
PORTB = 0b00000000; //apaga el led
_delay_ms(250); //esperamos 250 mili-segundos
}
return 1;
}
Por el momento no explicaré el código, ya que el motivo de este tutorial es para compilar y crear el archivo .hex usando una distribución de Linux.
Para compilar nuestro programa nos dirigimos a la ubicación donde hemos guardado nuestro archivo, una vez estando ahí abrimos una terminal y escribimos lo siguiente:
avr-gcc -mmcu=atmega8535 nombre_programa.c -o nombre_salida
Notemos que -mmcu=atmega8535 es el microcontrolador en el cual cargaré el .hex, dependiendo del microcontrolador que vayan a usar será el nombre que deberán incluir.
-mmcu=nombre_del_uc_a_usar
Si nuestro programa no generó errores es hora de pasar a la creación de nuestro .hex, para esto en la terminal escribimos lo siguiente.
avr-objcopy -O ihex nombre_salida source.hex
Y con esto hemos generado nuestro archivo .hex que será el que programaremos en el microcontrolador.
Para ver su funcionamiento podemos hacer uso de Proteus , esto lo explicaré posteriormente en mi canal de youtube.
Espero que este pequeño tutorial haya sido de ayuda.
Hasta la próxima...