El Arduino es una placa de desarrollo con un microcontrolador de un solo chip (por ejemplo, Atmega328). El microcontrolador en sí (solo el chip) se puede programar utilizando C integrado dentro del Arduino IDE, un editor de texto de su elección o el entorno Atmel Studio. El programa escrito debe compilarse , ensamblarse , vincularse y luego escribirse físicamente ( flashearse ) en la memoria del programa del microcontrolador. El IDE de Arduino en realidad puede admitir C incrustado (un programa “C” normal) pero no estoy seguro de si implementa todas las características del estándar C. Tendrá que hacer una investigación sobre el compilador para conocer el subconjunto de C que fue implementado por Microchip (no espere un simple tipo de respuesta “XYZ is implement”).
Vea esta discusión: ¿Cada línea de microcontrolador tiene su propio lenguaje de programación / sintaxis?
“Embedded C”, tal como lo conozco, se refiere a las características de C implementadas por Microchip para programar los diversos registros periféricos que controlan los periféricos de hardware:
- Cómo grabar un programa en un microcontrolador
- ¿Cuál es la ventaja de los microprocesadores sobre los sistemas integrados?
- ¿Cuál es el mejor instituto de capacitación en línea para sistemas integrados?
- ¿Vale la pena hacer MS de Alemania en el campo de los sistemas integrados después de 6 años de trabajo y buen salario en India?
- ¿De qué manera la programación de robótica es diferente de la programación principal e integrada?
Temporizadores, puertos digitales IO, pines analógicos, UART, SPI, I2C, USART, CAN, interrupciones, comparación de salida, capturas de entrada, convertidores de analógico a digital, puerto maestro paralelo, temporizador de vigilancia,… la mayoría de las hojas de datos enumeran los periféricos de hardware disponibles en las primeras páginas (google “hoja de datos ATmega328” y busque el manual de 600pg.
Para aprender a escribir programas en “C incrustado”, debe conocer los periféricos de hardware en el chip y cómo interactúan y pueden combinarse entre sí. Parte de la diversión es descubrir qué técnicas puedes desarrollar con estos periféricos de hardware. Más concretamente, una base sólida que explica la función de cada periférico de hardware y cómo programarlo es algo que desea buscar. El libro que me crucé y que me ayudó a cruzar la frontera entre el conocimiento “aficionado” y el “profesional” de un mirocontroller fue:
Computación integrada y mecatrónica con el microcontrolador PIC32 de Kevin M. Lynch, Nicholas Marchuk y Matthew L. Elwin.
Compré su placa de desarrollo (NU32) y por ~ $ 70, comencé a escribir “C incrustado” aunque, como aprenderá si obtiene el libro, hay una capa de abstracción MÁS BAJA que puede usar para programar un microcontrolador (“ensamblaje “). Lo que me gusta del libro es que te hace descargar el compilador, el ensamblador, el enlazador y el compilador PIC32MX795H (el chip en la placa NU32) y luego construir tu programa desde C incrustado al archivo .hex que envías al gestor de arranque (se también explica qué es esto) en la línea de comando. En cierto sentido, te haces una idea de cómo funcionan esos IDE “debajo del capó”.
También hay muchos otros libros para diferentes líneas de microcontroladores (ARM Cortex) y le sugiero que explore su tabla de contenido en Amazon después de leer al menos uno de estos libros.