Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Programación en C
Para Microcontroladores
De la familia AVR-Atmel
Sergio De León
Instituto Tecnológico de Cd. Madero
Cd. Madero Tamaulipas
Programas Necesarios
► AVR Studio 4
IDE Suite de Programación
Depuración / Debugging
Programador
► WINAVR
avr-gcc Compilador-Linker de C y C++
avr-libc Librerías y Macros
avrdude Programador
► AVRLib
Rutinas pre-codificadas (Funciones)
►Drivers para dispositivos Internos y Externos
Internos: Registros, USART, Timers, ADC.
Externos: Memorias, Sistemas FAT, GPS,
► WINAVR
avr-gcc Compilador-Linker de C y C++
avr-libc Librerías y Macros
avrdude Programador
Opciones del Compilador
► Velocidad
No hay que olvidar que varia en cada proyecto
► Optimizaciones
Métodos para disminuir el tamaño de nuestro código
► Carpetas
Al utilizar librerías y códigos por separado, las
definiciones pueden estar en otras carpetas
► Archivos anexos
Cuando se utilizan códigos anexos para agregar
funciones, se le debe de indicar al compilador que
dichos archivos, se compilen también
Variables
► Detalles
Tipo volatile
►Cuando existe la posibilidad de que
la variable sea modificada por otro
proceso. Solo declara asi aquellas
variables que sean modificadas por
interrupciones o procesos ajenos al
procesador (como timers, resultados
de convertidores, buffers de
transmision serial, etc).
► Detalles
Otro tipo de declaración
►uint8_t
►uint16_t
►uint32_t
►uint64_t
►int8_t
►int16_t
►int32_t
►int64_t
Manejo de Bits
► Seutiliza mucho el manejo de bits por medio de
funciones lógicas, entre números de 8 bits.
Ejemplos:
► //pin 2 es salida
► DDRB |= (1 << 2);
► //Seleccionar el canal 1 del ADC
► ADMUX |= ( (1<<MUX1) | (0<<MUX0) );
► //Activar interrupciones RxD/TxD
► outb( UCSR0B, BV(RXCIE0)|BV(TXCIE0) );
► //Poniendo a 1 la salida 0 del Puerto D
► sbi(PORTD,PD0);
Casting
► Se realiza para cambiar de variables. Ejemplo: