¿Dónde puedo aprender programación C incrustada para Arduino?

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:

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.

Arduino es un maravilloso conjunto de tableros SOC. Los uso Sugeriría algo más que la placa más barata, ya que las placas inferiores tienen poca memoria y opciones, y pronto se quedará sin ellas. Pero, de nuevo, son muy económicos, por lo que uno puede comprar 2 o 3 de ellos. Actualmente uso Arduino Due, que ofrece muchas líneas de E / S. Puede usar el C simple que usa arduino, directamente en su sitio web, y hay muchos tutoriales en Internet.

Además, para un fácil aprendizaje y una buena experiencia de desarrollo, descargue Visual Studio Community Edition y luego obtenga Visual Micro.

¿Puedo sugerirle que vaya a su motor de búsqueda favorito e ingrese “arduino C” (no ponga la frase completa entre comillas, pero posiblemente ponga cada elemento en sus propias comillas). Eso debería darle una lista completa de recursos, y probablemente pueda asumir, dado que es un tema puramente técnico, que los primeros resultados probablemente sean los más creíbles / útiles.

Debe tener algún conocimiento de C (incluso si solo está escribiendo pequeños programas de línea de comandos para computadoras de uso general) antes de hacer esto.

More Interesting

Cómo aprender IoT con sistemas integrados

¿Golang es un buen lenguaje para sistemas integrados?

Cómo conectar una fuente de alimentación a un microcontrolador

¿Dónde puedo encontrar un mini proyecto de sistema integrado con código fuente?

¿Qué dominio entre el desarrollador iOS o el ingeniero incorporado es mejor para el ingeniero electrónico?

¿Debo elegir sistemas embebidos o programación de juegos?

¿Cuáles son las oportunidades de carrera en sistemas embebidos?

¿Cuál es el mejor libro sobre sistemas integrados en C para principiantes?

Soy un ingeniero electrónico que se graduó recientemente y obtuve un trabajo como ingeniero de sistemas integrados donde tengo que trabajar en la programación C. ¿Es un buen trabajo para mí o no? ¿Debería continuarlo?

¿Cuáles son las áreas amplias de la ingeniería integrada? ¿Dónde está la sinapsis que conecta a los ingenieros automotrices con los ingenieros integrados? ¿Dónde se debe comenzar en el vasto campo de la ingeniería integrada?

¿Cuál será el futuro de los sistemas embebidos? ¿Qué técnicas será la versión avanzada de los sistemas embebidos?

¿Cuál es la información detallada de watchdog en el sistema integrado?

¿Cómo se usa el lenguaje ensamblador en la ingeniería de control?

Soy de ECE y lo tengo en TCS. Mi interés está en el sistema integrado. Entonces, ¿hay alguna posibilidad de integrarse en TCS?

¿Dónde comienza un principiante con conocimientos mínimos de programación y microcontroladores a aprender sobre los sistemas integrados?