ANSI C & Arduino
El objetivo de este artículo es presentar los métodos fundamentales para la creación de software embebido con un enfoque en ANSI C sobre Arduino. La plataforma de desarrollo Arduino es un medio ideal para realizar esta tarea. Como tal, este trabajo presenta el desarrollo de software embebido utilizando el 100% ANSI C para el procesador ATmega328P el Arduino. Tengamos en cuenta que es fundamental crear software embebido en general enfocado en ANSI C dado que esta modalidad ahorra notoriamente la cantidad de memoria utilizada. Para hacerlo más sencillo vamos a implementar el programa clásico como ejemplo que cambia el pin de salida (blink) conectado al LED en la placa. Según el circuito de Arduino Uno indica que el LED está conectado al pin del chip PB5 del ATmega328P. En este ejemplo en la función "MiDelay" utiizamos para la variable i el modificador de tipo "volatile". El mismo no está incluido en el ANSI C y debemos colocarlo en este caso puesto que el ciclo for al no realizar ninguna tarea el compilador tiende a eliminarlo en su afán de optimización de código. Usaremos el siguiente código:
#define LEDV 0x20
void MiDelay(unsigned long);
int main(void){
DDRB |= LEDV;
while(1){
PORTB |= LEDV; MiDelay(100);
PORTB &= ~LEDV; MiDelay(100);
}
}
void MiDelay(unsigned long Tiempo){
volatile unsigned long i;
unsigned long endTime = 1000 * Tiempo;
for(i=0; i < endTime; i++);
}
Documentación y descargas:
- Más sobre Arduino UNO y de su predecesor Duemilanove
- Descarga del compilador (Windows, Linux y Mac)
- Guía para empezar (Windows, Linux, Mac)
- Referencia del lenguaje (Guía de funciones disponibles)
- Códigos de ejemplo
- La Zona de juegos para Arduino
- MainBoardUno.. Arduino Nano
- El Hermano menor.. Arduino Nano
Manules, Tutoriales, elementos Utiles.
- Arduino Programming Notebook. Traducido al español por JarBot (Noviembre 2009).
- Video Tutoriales Curso de Programación de Microcontroladores ATMEL AVR en Lenguaje C.






