TutorialAVRdesde0

Páginas: 29 (7217 palabras) Publicado: 4 de diciembre de 2015
Tutorial AVR desde 0
Introducción a la programación
de microcontroladores AVR

Felixls
http://sergiols.blogspot.com

Licencia
Tutorial AVR desde 0 por Felixls se encuentra bajo una Licencia Creative Commons AtribuciónCompartirIgual 3.0 Unported.

No está permitido la edición de las primeras tres páginas de este documento sin mi
permiso.

Prefacio
Este tutorial es una introducción a laprogramación de microcontroladores Atmel AVR, en
particular usando el lenguaje C y el compilador gratuito AVR GCC.
En general todo el material necesario para el aprendizaje será basado en herramientas de
código abierto, por ello se utilizará como sistema operativo Ubuntu 12.04, como IDE el Eclipse
con el plugin AVR Eclipse Plugin disponible para descarga gratuita.
El tutorial presupone conocimientosprevios de lenguaje C. No es necesario el conocimiento
previo de programación de microcontroladores en general.
El desarrollo del material implementará un proceso de aprendizaje iterativo e incremental
ocultando algunos detalles para facilitar la comprensión y se regresará, de a poco, sobre temas
pasados para completarlo.
Cualquier consulta, duda o corrección será bienvenida en el foro de electrónicauControl (del
amigo Ariel Palazzesi).

Índice General
Licencia
Prefacio
Índice General
Introducción
Herramientas necesarias
Mi primer programa
Mi primer circuito
Programación del firmware
Led ON
Blinking LED
Uso de entradas
Rebotes
Memorias
Flash
EEPROM
SRAM
Variables
Campos de bits (Bit Fields)
Uso práctico
USART
La especificación RS232
Inicializando la USART
Envío de datos
Recepción de datosEjemplo “ECO eco eco...”
Ejemplo control remoto
Diseño modular
ADC
Resolución y referencia de tensión
Configuración de registros
Circuito de prueba
Interrupciones
Consideraciones
Fuentes de interrupciones
Manejando una interrupción
Ejemplo: USART con interrupciones
Timers
Timer sin prescaler
Timer con prescaler
Modo CTC
Modo CTC con interrupciones
Modo CTC - Output Compare
PWM
Modo Fast-PWM
Registrosde PWM

Modo Phase Correct
Modo Phase and Frecuency Correct
EEPROM
Rutinas comunes
Ejemplo de uso
Acceso por bloque
Modificador EEMEM
Estableciendo valores iniciales

Introducción
Herramientas necesarias







Un microcontrolador ATmega8 o similar de 8 bits.
Placa para pruebas o bien un protoboard.
Compilador avr gcc y avr libc. Para windows está WinAVR y AVR Studio.
Software delprogramador AVRDUDE
Hardware del programador (ej.: Serial Prog, USBAsp, USBAsp Clone, etc)
Para simulación y debug se puede utilizar en windows AVR Studio.

Mi primer programa
Comenzamos de 0, no? Bueno, aquí está el famoso “Hello World” en estos micros:
int main(void)
{
}
Un programa tan simple que es prácticamente imposible fallar :).
Todo programa de AVR tiene un punto de entrada llamado main y en el99.9999% de los casos
una vez que comienza a ejecutarse en el microcontrolador el código incluido en esta función es
en un bucle (loop) infinito contenedor de todos los procesos implementados en el micro.
Vamos a completar un poco más el ejemplo:
#include
int main(void)
{
for (;;)
{
}
}
Este ejemplo sigue haciendo tantas cosas como el anterior, es decir nada, el micro inicia y
entra enun loop infinito en la sentencia for.
El lector advirtió seguramente la diferencia entre ambos códigos en esta línea:
#include

Esta directiva #include del pre-procesador de C incluye en forma selectiva el archivo
encabezado (header) con las definiciones de registros de entrada/salida, vectores y bits
relativos al microcontrolador elegido.
Estas definiciones nos ayudan a evitar plagarnuestro código con los valores numéricos y usar
nombres más fáciles de leer y recordar.
En un Atmega8, por ej., el puerto D está definido de la siguiente manera en iom8.h
/* Port
#define
#define
#define

D */
PIND
DDRD
PORTD

_SFR_IO8(0x10)
_SFR_IO8(0x11)
_SFR_IO8(0x12)

PIND es el Port INput del puerto D.
DDRD es el Data Direction Register del puerto D.
PORTD es obviamente, el puerto (PORT) D....
Leer documento completo

Regístrate para leer el documento completo.

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS