Saltar al contenido
Logotipo de Trainontech Trainontech

Lenguajes y Fundamentos de Programación · DEV-106

Programación en C/C++ para microcontroladores

Punteros, memoria y estructuras en C/C++ aplicados a Arduino y ESP32, donde cada byte cuenta.

Bajo demanda Intermedio 7 módulos · 34 clases

Formato asíncrono Desarrollo, Ingeniería / Industria, Docentes FP Arduino, ESP32

Lo que aprenderás

  • Escribir firmware en C/C++ para Arduino y ESP32 con el ciclo setup y loop y sin bloqueos por delay
  • Manejar punteros, paso por referencia y aritmética de direcciones sobre búferes de datos
  • Distinguir memoria de programa, pila y montón, y evitar la fragmentación en un microcontrolador
  • Definir structs, uniones y enumeraciones para representar tramas y estados de forma compacta
  • Aplicar operaciones a nivel de bit para leer y escribir registros y campos de configuración
  • Gestionar interrupciones y variables volátiles compartidas con el bucle principal
  • Depurar por puerto serie y medir consumo de memoria libre durante la ejecución

Contenido del curso

7 módulos · 34 clases en vídeo · práctica guiada en cada módulo

Módulo 1 · Entorno y primer firmware 5 clases
  • Diferencias entre programar en PC y en microcontrolador
  • Arduino IDE, PlatformIO y el simulador
  • Estructura setup y loop
  • Compilación, subida y monitor serie
  • Recursos de la placa: memoria, reloj y pines
Módulo 2 · Tipos, memoria y variables 5 clases
  • Tipos enteros con tamaño explícito
  • Constantes, const y almacenamiento en memoria de programa
  • Ámbito, variables estáticas y globales
  • Mapa de memoria: programa, pila y montón
  • Medir memoria libre durante la ejecución
Módulo 3 · Punteros y arrays 5 clases
  • Dirección, desreferencia y paso por referencia
  • Arrays y su relación con los punteros
  • Cadenas en C y el carácter final
  • Desbordamiento de búfer provocado y detectado
  • Punteros a función para tablas de acciones
Módulo 4 · Estructuras de datos compactas 5 clases
  • struct para representar una lectura o una trama
  • Alineación y tamaño real de una estructura
  • Uniones para reinterpretar bytes
  • Enumeraciones y máquinas de estado
  • Búfer circular para datos de sensor
Módulo 5 · Bits y registros 5 clases
  • Operadores de bit y máscaras
  • Leer y escribir un campo de un registro
  • Banderas de estado en un solo byte
  • Acceso directo a puertos frente a funciones de la biblioteca
  • Configuración de periféricos por registro
Módulo 6 · Tiempo, interrupciones y concurrencia 5 clases
  • Sustituir delay por control con millis
  • Interrupciones externas y por temporizador
  • Variables volátiles compartidas
  • Secciones críticas y datos consistentes
  • Tareas en ESP32 con FreeRTOS
Módulo 7 · Proyecto de cierre 4 clases
  • Registrador de medidas con búfer y envío por serie
  • Máquina de estados del firmware
  • Prueba de estabilidad y comprobación de memoria
  • Documentación del código para el aula o el equipo

Requisitos

  • Haber programado antes en algún lenguaje, aunque sea Python o Arduino a nivel de ejemplos
  • Disponer de una placa Arduino o ESP32, o usar el simulador para la mayoría de las prácticas
  • Conocer electrónica básica: entradas, salidas digitales y niveles de tensión

Descripción

En un microcontrolador no hay recolector de basura ni memoria de sobra. Una cadena que se copia dentro de un bucle, un búfer que se desborda o un puntero que apunta a algo ya liberado no dan un error claro: dan reinicios aleatorios al cabo de un tiempo de funcionamiento, justo el fallo que aparece cuando el equipo ya está instalado en campo.

El curso enseña C/C++ desde el punto de vista del sistema empotrado. Tipos y tamaños reales, punteros, structs para tramas, operaciones de bit sobre registros, gestión de pila y montón, interrupciones y variables volátiles. Todo se prueba en Arduino y ESP32, con medición de memoria libre y depuración por serie, y con ejemplos donde el fallo se provoca a propósito para poder reconocerlo.

Al terminar se puede leer y escribir firmware con criterio, entender el código de una biblioteca de sensor antes de confiar en ella y diagnosticar reinicios y corrupciones de memoria en lugar de convivir con ellos. Es la base necesaria para proyectos de adquisición, para comunicaciones industriales y para prácticas de aula de sistemas empotrados.

¿Para quién es este curso?

  • Profesorado de FP de Sistemas Electrotécnicos o Electrónica que prepara prácticas de microcontrolador
  • Ingenieros que integran sensores y necesitan entender y modificar el firmware que reciben
  • Desarrolladores de software que bajan al sistema empotrado y se encuentran con punteros y memoria limitada
Bajo demanda

Curso diseñado con la ficha cerrada. Se produce al confirmarse un grupo o un contrato.

Código
DEV-106
Nivel
Intermedio
Público
Desarrollo, Ingeniería / Industria, Docentes FP
Entorno
Arduino, ESP32

Este curso incluye

  • 34 clases en vídeo bajo demanda
  • Práctica en entornos web y simuladores, sin instalar nada
  • Tutorización en el campus
  • Acceso desde móvil, tableta y ordenador
  • Actualizaciones cuando cambia la versión de la herramienta
  • Certificado de finalización

Sigue aprendiendo

Cursos relacionados

PY-104Lenguajes y Fundamentos de Programación

Ficheros, excepciones y módulos

Lectura y escritura robusta, gestión de errores e importaciones para código que otros mantendrán.

Python

Intermedio 32 clases