Programando Embedded System Microcontroller con Metologia interactiva.
GILBERTO PASCUAL, 2024
gpascualt@gmail.com
Lenguaje C
y el Microcontrolador AVR
Lección 1:
¿Por qué programar microcontroladores
Atmel (AVR)en lenguaje C?
Figura1
Figura2
“Ahora usted puede aprender a Programar Microcontroladores de forma muy fácil”.
1. Introducción:
En el mundo de los
microcontroladores AVR, programar en lenguaje C se ha convertido en una opción
más eficiente y accesible en comparación con otros lenguajes como Assembler. En
esta lección, analizaremos por qué elegir el lenguaje C para programar microcontroladores
AVR, comparándolo con Assembler, y cómo esto puede facilitar el desarrollo de
proyectos más complejos.
2. Mi punto de vista sobre las ventajas de lenguaje C:
Todos los que estamos metidos
dentro del mundo de los microcontroladores sabemos bien que estos dispositivos
están limitados por espacio de memoria muy pequeña, por ejemplo el
microcontrolador Atmel, Atmega16 solo tiene 16K bytes de memoria flash, por lo
cual para optimizarlos deberíamos hacer que estos dispositivos se programen
como en sus primeras épocas, es decir usar el lenguaje Assembler, el lenguaje
máquina, creo que en esta época, año
2024, es difícil encontrar jóvenes que programen en Assembler, porque
desconocen este lenguaje en el que uno se inmersen en los registros, flag y una
combinación de instrucciones muy básicas de programación.
Bueno en la actualidad la mayoría
utiliza Arduino que esta basado en lenguaje C, pero lo que desconoce es que este
compilador al generar el archivo. hex (el que se copia dentro del
microcontrolador), tiene un tamaño mucho mayor que el generado por un
compilador que solo está escrito en lenguaje C o el código escrito en Assembler,
limitando el espacio en el microcontrolador. Es decir, cuando escribe el código
para el microcontrolador en lenguaje Assembler, el archivo. hex generado tiene
un tamaño mucho menor que el código escrito en lenguaje C. Pero entonces porque
deberíamos programar nuestros microcontroladores en lenguaje C, porque la
programación en lenguaje C consume menor tiempo de programación y es más fácil
de escribir a diferencia de Assembler.
Los siguientes puntos dan mayor
razón por el cual es mejor escribir el código de programación para
microcontroladores en lenguaje C que en Assembler u otro lenguaje de
programación:
- Es fácil y consume menor tiempo escribir el código en lenguaje C en un compilador.
- El código del lenguaje C es más fácil de modificar y actualizar.
- Se puede usar librerías ya desarrolladas en nuestro código.
- El lenguaje C es portable, es decir podemos usar el mismo código para diferentes microcontroladores.
Frente a los puntos indicados, si
trabajáramos en desarrollo de nuevos prototipos basándonos en alguna versión de
Arduino, veríamos en un futuro limitaciones de diferentes características que
esos prototipos ya vienen definidos, a diferencia de generar código para
cualquier microcontrolador y poder migrar al microcontrolador que cumple con
los nuevos requerimientos de nuestro prototipo, aparte de poder tener un
desarrollo propio sin depender de la marca y sus políticas de derechos de
autor.
Bueno existen diferentes
compañías que desarrollan compiladores de lenguaje C para microcontroladores
Atmel (AVR), nosotros usaremos el compilador AVR Studio, pero la finalidad de
este curso es que usted pueda aprender los fundamentos de programación de
lenguaje C para microcontroladores Atmel (AVR).
Figura3. Ejemplo de código en lenguaje C
para microcontrolador AVR (Atmega16) en AVR Studio.
En este módulo 1, están los fundamentos y principios básicos del lenguaje C que se usaran para la programación de microcontroladores y de esta manera dar a conocer la ventaja que tiene el leguaje C sobre Assembler, los cuales se usaran en las siguientes lecciones, donde se explicara los tipos de datos, retardo de tiempo, programación de entradas y salidas (I/O), programación de operaciones lógicas entre otros puntos básicos para entender y hacer uso del lenguaje C para los microcontroladores y poder compilarlos en AVR Studio.
3. Ventajas de programar microcontroladores AVR en Leguaje C
Facilidad y Rapidez en la Escritura del Código
El lenguaje C a
diferencia un lenguaje maquina hace uso de variables, operaciones lógicas y
aritméticas, condicionales, funciones que lo hacen un lenguaje de alto nivel a
diferencia de otro tipo de lenguaje, esto permite crear código funcional con
pocas líneas de código.
Facilidad de
Modificación y Actualización
El leguaje C tiene una sintaxis que permite poder realizar modificaciones y actualizaciones del código de manera más eficiente y simple.
Uso de
Librerías Desarrolladas
Por ejemplo la librería io.h permite tener ya definido por nombre los registros de entrada y salida dependiendo del microcontrolador a usar, eso significa que esta librería le indica al compilador que pines debe usar de acuerdo al microcontrolador seleccionado, sin tener que estar definiendo desde cero los registros, pines y puertos del microcontrolador, otro ejemplo es la libreria delay.h, que ya cuenta con funciones que nos generan retardos de tiempo o temporizado, sin tener que nosotros programar desde cero los delay de tiempo, como se hacía en Assembler.
Portabilidad
del Código en Diferentes Microcontroladores
Con se indico en diferentes momentos, podemos usar el mismo código para diferentes microcontroladores, siempre en cuanto tengamos las mismas funciones en hardware y compatibilidad, es por ello que con la experiencia de programación se empieza a crear diferentes hojas de configuración, funciones y código de ejecución que permita migrar el código de manera fácil a cualquier microcontrolador.
4. Resumen de la lección 1:
"Esta lección explora las razones detrás de la elección del lenguaje C para programar microcontroladores Atmel AVR, en lugar de Assembler. Explicamos cómo el lenguaje C simplifica el proceso de desarrollo y por qué es la opción preferida en proyectos modernos".
5. Descargar el paper de la lección 1: "¿Por qué programar microcontroladores Atmel (AVR) en Lenguaje C?"
Puedes descargar el paper de la Lección 1 sobre la programación en lenguaje C de microcontroladores AVR directamente desde Google Drive aquí.
6.
Preguntas
frecuentes:
¿Por qué es más eficiente
programar microcontroladores AVR en C que en Assembler?
El lenguaje C ofrece un equilibrio entre simplicidad y
eficiencia, permitiendo escribir código más rápidamente y con menos errores que
en Assembler.
¿Qué compilador es mejor para programar microcontroladores
AVR?
AVR Studio es una de las mejores opciones por su integración
con microcontroladores AVR, pero también puedes usar otros compiladores como
GCC para AVR.
7. Enlaces:
- - "Tipos de Lenguajes de Programación"
- - "Introducción a la electrónica de Microcontroladores"
- - "Introducción a los Microcontroladores"
- - "Familia de Microcontroladores (µC)"
- - "Programando en Basic: Lenguaje de alto Nivel para Microcontroladores"
- - "Programando un Atmel: Mi primer programa"
- - "Puedes consultar más detalles sobre los compiladores AVR en el sitio oficial de Microchip que adquirió Atmel aquí: https://www.microchip.com/"
“Comparte este conocimiento”
“Si te ha sido útil este artículo, compártelo en tus redes sociales y
ayuda a otros a mejorar sus habilidades de programación de microcontroladores.
¡Tus comentarios también son bienvenidos!
¡Gracias!
Atte. Gilberto Pascual
No hay comentarios:
Publicar un comentario