Primeros pasos
WinAVR es una herramienta que nos brinda la posibilidad de realizar desarrollos firmware para microcontroladores AVR, dicha herramienta se basa en el reconocido compilador GCC que es código libre. Si quieres descargar WinAVR ve al siguiente link
winavr.sourceforge.net/
Al instalar este software se copian a nuestro equipo las librerías para poder trabajar con los microcontroladores AVR, una versión del compilador GCC, y algunas otras herramientas que más adelante veremos.
Primer programa.
Les explicare los paso para crear un programa en c para avr utilizando el compilado winavr. 1. Una vez instalado en winavr crear una carpeta con el nombre y el directorio que elijan. En este caso hice una carpeta con el nombre de led en el escritorio.
2. Ir al menú de inicio, buscar en todos los programas la sección winavr y ejecutar la aplicación mfile.
3. Les abrirá la siguiente ventana, dentro de esa abrir Make file y en la sección MCU type seleccionar el microcontrolador que se desea programar en este caso será un atmega16.
4. Una vez seleccionado el microcontrolador les aparecerá lo siguiente:
5. Ya seleccionado el microntrolador es necesario especificar la velocidad a la cual activando la edición del makefile como se muestra. ya una vez activa la edición se cambia de 8MHz a 1 MHz
6. Ya una vez configurado el mfile se guarda en la carpeta que se creó previamente en mi caso la carpeta llamada led.
7. Una vez creado el mfile, estamos listos para empezar a crear nuestro programa en c y lo que necesitamos es ir al menú de inicio, buscar en todos los programas la sección winavr y ejecutar la aplicación Proramers Notepad WinAVR.
8. Ya ejecutada la aplicación lo primero que será necesario es crear un nuevo proyecto al cual ustedes lo nombraran con el nombre que elijan en mi caso lo seguiré llamando led, el cual será guardado en la carpeta led o en la que ustedes crearon.
Y en su ventana se visualizara su proyecto
9. Lo siguiente será crear un nuevo archivo de c y guardarlo como main.c en la misma carpeta.
10. Ahora solo resta agregar los archivos a mi proyecto y empezar a desarrollar mi código fuente. Esto se logra dando clic derecho a mi carpeta llamada led de mi notepad y seleccionar la opción agregar archivos.
En esta ventana solo necesitan seleccionarlos archivos correspondientes a su proyecto es esta ocasión son los llamados makefile y main.c, selecciónalos y da clic en el botón de abrir
Si lo realizaste bien te aparecerá lo siguiente y puedes empezar a escribir tu código fuente.
Plantilla para un programa en c para avr En el siguiente código se le dice al microcontrolador que lea el valor del puerto A y lo escriba en el puerto C. /*************************************************************************************** Sección donde se agregan los archivos de cabecera, para los microcontroladores avr se utiliza la biblioteca avr/io.h la cual contiene todas las direcciones de registros utilizados en el
microcontrolador a utilizar.
***************************************************************************************/ #include
/************************************************************************************** Esta sección se puede utilizar para declarar variables globales, definir constantes o funciones **************************************************************************************/ int main (void){ /************************************************************************************* En esta sección se declaran variables locales y se configuran los puertos del microcontrolador ya sean como entradas o salidas, además se configuran los registros de otros periféricos Como timer/counter, ADC, etc. *************************************************************************************/ //Se configura el puerto A como entradas ya que se está escribiendo un 0 en //cada bit del registro DDRA= 0b00000000;// 0b Indica que se están introduciendo
valores en binario
//Se configura el puerto C como salidas ya que se está escribiendo un 1 en //cada bit del registro DDRC= 0b11111111; //Se declara una variable tipo carácter ya que esta ocupa un espacio de 8 bits //Recuerde que se está utilizando un microcontrolador de 8 bits y una variable //Tipo carácter se ajusta perfectamente al tamaño de los registros char x;
while(1){ /************************************************************************************ En esta sección se agrega todas las intrusiones que el microcontrolador realizara infinitamente ************************************************************************************/ //En este caso se tomara el valor que tenga el puerto A
y será escrito en la variable x
x=PINA;//El registro PINx contiene el valor de lectura de los puertos PORTC=x;//El registro PORTx se utiliza para la escritura de los puertos } return 0; }
Una vez se tiene listo el código solo resta compilarlo para revisar que no tenga erros de sintaxis, lo cual se logra ubicándose en el menú tools y dar clic en [WinAVR] Make Clean y visualizar código de error 0 en la sección inferior izquierda del compilador como se muestra en las siguientes imágenes.
Después necesitan volverse a ubicar en el menú tools y dar clic en [WinAVR] Make All y visualizar código de error 0.
Siles vuelve a dar código 0 como se muestra en la figura siguiente quiere decir que no se tuvieron errores de sintaxis y se generó un archivo en leguaje maquina llamado main.hex el cual utilizado para descargarlo al microcontrolador y realizar las pruebas físicas del comportamiento.