Programación ANSI C Orientado a Sistemas Embebidos

 

Pocos desarrolladores tienen las habilidades necesarias en Lenguaje C que se necesitan para aplicaciones de sistemas embebidos del mundo real.

Aplicado en Microcontroladores PIC, AVR y ARM.

30% de Descuento |  Cupo Limitado!

o

Clases EN VIVO

Podrás resolver todas tus dudas en las clases en vivo. También podrás acceder a las grabaciones.

Placa de Desarrollo incluido

Tarjeta de desarrollo con microcontrolador para correr las prácticas propuestas en el curso.

Clases Interactivas

Los alumnos podrán hacer observaciones y preguntas como si se tratara de cualquier clase presencial.

%

DESCUENTO

Obtén un 30% de DESCUENTO, vigencia 25 de enero.

Al tomar el curso recibe tu certificado de asistencia avalado por Microchip Technology!

CUPO LIMITADO!

Descripción del Curso

Un buen desarrollador de software embebido debe de conocer y dominar los patrones y métodos de programación en C que permiten que un sistema electrónico funcione de manera optimizada en procesamiento, administración de memoria y consumo de energía.

En este curso aprenderás a programar en Lenguaje ANSI C desde cero desde un punto de vista no específico de un hardware en particular. Podrás aplicar los conocimientos obtenidos a diversas arquitecturas de microcontroladores como PIC, AVR, ARM, etc.

Motores de Videojuegos, Sistemas Operativos como Linux y Windows, Lenguajes como Python, LabVIEW y Android fueron desarrollados en C.

¿Te has preguntado cuáles habilidades se necesitan para desarrollar este tipo de tecnologías?

En este curso aprenderás a desarrollar código en lenguaje C profesional y acorde con estándares de calidad, seguridad y confiabilidad utilizando patrones de programación utilizados en los sistemas embebidos del mundo real.

Requisitos para tomar el curso

No se requieren conocimientos previos para tomar este curso. Iniciamos desde cero.

¿Para quién está dirigido este curso?

Estudiantes, entusiastas, técnicos y profesionales de carreras a fines de tecnología.

Alcance del curso

Aprende a programar Lenguaje C desde cero, hasta dominar las técnicas de programación utilizadas en el mundo real.

Microchip Technology

 

Como Centro de Entrenamiento de Microchip en español garantizamos la mejor experiencia de aprendizaje. Enseñamos con la misma línea de aprendizaje utilizada por los ingenieros de aplicaciones de Microchip, esto es debido a que nuestro equipo de instructores recibe capacitaciones constantes directamente con ellos.

Aprende las habilidades de programación en Lenguaje C que poseen los ingenieros de grandes compañías para desarrollar software embebido del mundo real.

¿Por qué el Lenguaje C para Sistemas Embebidos?

 

El Lenguaje C cambió la historia de la programación, permitió por primera vez programar hardware en un entorno de alto nivel. Es el lenguaje por excelencia para programar hardware obteniendo niveles portabilidad que no puede brindar el lenguaje ensamblador.

Este lenguaje te permite estar a un nivel bajo cercano al hardware y también tener un nivel alto con prestaciones de portabilidad y eficiencia.

Dile Adiós al Código Espagueti

El Código Espagueti es el resultado de estructurar de mala forma un programa. Se caracteriza por el uso recurrente de sentencias condicionales anidadas, comprobaciones utilizando bucles bloqueantes, entre otras; lo cual dificulta la funcionalidad, modularidad y escalabilidad del programa. Esto complica el seguimiento y comprensión del código por lo que será un problema mantenerlo, depurarlo y agregar nuevas funcionalidades.

Añadido a esto, un programa con código espagueti será más propenso a tener errores o “bugs”.

En este curso aprenderás a estructurar código de manera profesional cuidando patrones y convenciones de programación que ayudarán a la modularidad y mantenimiento del programa.

 

Embedded Systems C

Desarrollo de firmware profesional para sistemas embebidos.

Patrones de Diseño en C

Mediante patrones de diseño aprenderás a dar soluciones apropiadas a problemas generales y bien conocidos en los sistemas embebidos. Se tratan de estructuras de software que funcionan como una solución general, reutilizable y aplicable a diferentes problemas, como protocolos de comunicación, control de sensores y motores, manejadores de eventos, entre otros.

Placa de Desarrollo para correr las prácticas

Incluye todo lo que necesitamos!

 Programación de PIC en C MCC

Tarjeta de desarrollo PIC-IoT Microchip

Basada en el microcontrolador de 16-bit PIC24FJ128GA705, el chip de encriptación ATECC608A y el módulo Wi-Fi® ATWINC1510. De igual forma incluye un sensor de luz y temperatura. 

Con esta placa probaremos y aplicaremos los conceptos aprendidos del curso.

 

Envío Gratis

dentro de la República Mexicana

  • Programador/debugger integrado 100% 100%
  • Conectividad Wi-Fi 100% 100%
  • Sensor de Temperatura 100% 100%
  • Co-Procesador de Encriptación Integrado 100% 100%
  • Sensor de nivel de Luz 100% 100%

El envío del Kit de Desarrollo es GRATIS  a cualquier parte de México.

Fecha

30 de enero, 1, 6, 8, 13, 15, 20, 22, 27 y 29 de febrero 2024

Días de clase

martes y jueves

I

Número de sesiones

10 sesiones

Horario

6 pm a 10 pm (Horario de la Ciudad de México).

Horas por clase

4 horas

Horas de curso

+50 horas

¿No se te acomoda el horario?

Grabamos cada una de las clases para que puedas descargarlas, visualizarlas y repasarlas posteriormente.

Años de experiencia impartiendo Cursos y Conferencias acerca de Internet Of Things

El mundo entero corre en C!

Desde los drivers de tu PC, hasta el Sistema Operativo corre en lenguaje C.

El kernel de Linux, el sistema operativo más importante de la historia corre en C. Para poder implementar este tipo de tecnologías cercanas al hardware se requiere de habilidades muy precisas. ¿Quieres aprender como se hace?

Temario

Cada tema inlcuye fundamentos teóricos sólidos y un conjunto de prácticas para una experiencia de aprendizaje única.

Tema 1: Historia del Lenguaje C

Historia del lenguaje C. Análisis de los componentes de un compilador: preprocesador, parser, assembler, linker, etc.

Tema 2: Tipos de datos y variables.

Tipos de datos, declaración de variables, calificadores de tipos de datos y palabras reservadas.

Tema 3: Directiva #include

Estudio de la directiva #include y otras directivas de preprocesador. Desarrollo utilizando macros con la directiva #define

Tema 4: Constantes literales y simbólicas

Literales de tipo integer, float, char, string y escape sequences. Constantes simbólicas.

Tema 5: Operadores

Operadores aritméticos, de relacion, bitwise. Precedencia de operadores.

Tema 6: Sentencia if y switch

Sentencia de decisión if-else en diferentes aplicaciones. Sentencia switch-case-break.

Tema 7: Lazos For, While, Do-While

Estudio y campos de aplicación de los bucles de repetición for, while, do-while. Revisión de continue y break.

Tema 8: Funciones

Implementación, encapsulación y re-utilización de código utilizando funciones.

Tema 9: Alcance de variables y funciones

Tiempo de vida y alcance de variables y funciones. Variables static, auto y external. Static Functions.

Tema 10: Creación de librerías

Manejo de archivos *.c y archivos header *.h. Creación de una librería multi-archivos .c y .h.

Tema 11: Arreglos

Aplicaciones de arreglos con diferentes tipos de datos. Revisión del impacto de los arreglos en memoria RAM.

Tema 12: Punteros

Principio de funcionamiento y uso básico de punteros. Aplicaciones de punteros en los sistemas embebidos.

Tema 13: Aplicaciones con punteros

Uso de punteros en conjunto con arreglos, funciones y cadenas de texto.

Tema 14: Punteros a función

Estudio de los punteros a función. Desarrollo de una librería genérica con generación asíncrona de notificaciones.

Tema 15: Estructuras y Uniones

Estudio de estructuras y uniones. Punteros a estructuras. Arreglos de estructuras. Paso de estructuras a funciones. Estructuras anidadas.

Tema 16: Campos de bits

Estudio e implementación de los Bit Fields. Revisión del impacto en memoria del uso de bit fields.

Tema 17: Enumeraciones

Estudio e implementación de las enumeraciones. Aplicaciones de las enumeraciones en diferentes tipos de programas.

Tema 18: Máquinas de estado

Máquinas de estado Mealy-Moore. Programación de una máquina industrial y vending utilizando máquinas de estado.

Tema 19: Tipos de datos personalizados

Creación de tipos de datos con typedef e instanciar objetos a nuestros tipos de datos personalizados.

Tema 20: Desarrollo de una librería portable

Desarrollo de una librería de control de hardware portable que pueda correr en diversos modelos de microcontroladores.

Tema 21: Capa de Abstracción de Hardware (HAL)

Desarrollo de una Capa de Abstracción de Hardware (HAL) para nuestra librería portable.

Tema 22: Desarrollo de paquetes MQTT

Desarrollo de paquetes MQTT para envío de datos de sensores a la nube. Se utilizarán los conceptos aprendidos.

Tema 23: Non-blocking & Async Functions

Desarrollo de funciones non-blocking y asíncronas utilizando el concepto de callbacks y punteros a funcion.

Tema 24: Ring Buffering

Desarrollo de programas utilizando la estructura de datos ring buffer y los conceptos head and tail.

Tema 25: Manejo de Eventos Asíncronos

Control de eventos de hardware de manera asíncrona al flujo del programa con el fin de no retrasar la ejecución de otras tareas.

Tema 26: Listas y Linked List

Desarrollo de aplicaciones con la estructura de datos Linked List ampliamente utilizado en sistemas operativos.

Tema 27: Programación Orientada a Objetos

Clases, objetos, herencia, clases abstractas y polimorfismo en C. Dynamic Memory Allocation.

Tema 28: Patrones de Diseño en C

Patrones de diseño aplicable a diferentes problemas de diseño de software para sistemas embebidos. 

Tema 29: Task Scheduler

Desarrollo de un Planificador de Tareas para ejecutar diversas tareas de manera “concurrente”. Esta es la base de los OS.

Tema 30: Desarrollo de un Sistema Operativo

Desarrollo de un RTOS (Sistema Operativo de Tiempo Real) implementado con servicios de temporización con Task Scheduler.

Aprenderás a aplicar los conocimientos aprendidos en los siguientes campos de aplicación:

=

Comunicación Wi-Fi

=

Comunicación Bluetooth

=

Comunicación USB

=

Sistema Operativo de Tiempo Real RTOS

=

Aplicaciones Internet Of Things

=

Criptografía

=

Seguridad en IoT

=

Máquinas industriales

=

Máquinas Vending

=

Interacción con sensores industriales

=

Bandas transportadoras

=

Comunicación con Interfaces Gráficas

=

Adquisición de datos

=

Librerías portables

=

Administración de Memoria

Portabilidad de hardware

 

Aprenderás a desarrollar programas PORTABLES en lenguaje C utilizando los conceptos de HAL (Hardware Abstraction Layer) y BSP (Board Support Package). Un programa portable puede correr en diferentes modelos de Microcontroladores. Para garantizar dicha portabilidad se utilizan técnicas de programación y niveles de abstracción que aprenderás en este curso.

En el mundo real de sistemas embebidos se utilizan altos niveles de abstracción para lograr que un programa corra en diferentes plataformas de hardware.

Análisis de Impacto en Memoria

 

Aprenderás los patrones y técnicas de programación que ayudan a optimizar el consumo de memoria y energía en un dispositivo. Para esto utilizaremos simuladores para visualización de la memoria del microcontrolador.

Aprende a Desarrollar tu propio Sistema Operativo

Sistema Operativo de Tiempo Real (RTOS)

Poniendo en marcha los temas del curso, aprenderás a desarrollar un RTOS (Sistema Operativo de Tiempo Real).

Planificador de Tareas

 

Aprenderás a desarrollar un planificador de tareas en conjunto con algoritmos de ordenamiento para organizar diferentes tareas y asignarle un turno de ejecución en el microcontrolador dependiendo de su prioridad e intervalo de ejecución.

Aplicaciones en seguridad de Internet Of Things

 

Integrando diversos temas del curso, como arreglos, punteros, estructuras y uniones, aprenderás a desarrollar de manera estructurada aplicaciones de seguridad para el Internet de las Cosas utilizando el co-procesador de encriptación ATECC608A integrado en la placa PIC-IoT WG.

 

Conectividad Inalámbrica Wi-Fi

 

Integrando diversos temas del curso, como funciones asíncronas, callbacks,  eventos y punteros a función, aprenderás a desarrollar de manera estructurada aplicaciones con conectividad Wi-Fi enfocado al Internet de las Cosas. Para esto utilizaremos el controlador Wi-Fi ATWINC1510 integrado en la placa PIC-IoT WG.

De igual forma aplicaremos los temas con otro tipo de tecnologías inalámbricas como Bluetooth Low Energy.

Control de eventos de hardware

 

Aprende a desarrollar código en C para controlar eventos de hardware de manera asíncrona respecto al flujo del programa principal con el fin de no retrasar la ejecución de otras tareas.

Un ejemplo de evento de hardware es cuando el microcontrolador recibe un dato por algún bus de comunicación como SPI, I2C, UART, etc. Procesar la llegada de ese dato de manera asíncrona respecto a la solicitud de lectura de dicho dato le dará al programa la capacidad de no retrasar tareas de alta prioridad de ejecución.

Pantallas Touch HMI

 

TEMA NUEVO!

Aprende técnicas de programación para atender eventos touch de pantallas táctiles HMI utilizadas altamente en la industria.

cloud functions iot google

El descuento finaliza en:

Day(s)

:

Hour(s)

:

Minute(s)

:

Second(s)

Que esperas para iniciar!

 

Si no tienes conocimientos en Lenguaje C esta es tu mejor oportunidad para iniciar. Te ofrecemos una ruta de aprendizaje iniciando desde cero hasta aterrizar cada uno de los temas al mundo real de los sistemas embebidos.

Elige el Paquete que más te Convenga!

En la caja de tu carrito de compras podrás elegir la forma de pago que prefieras.

Adquiérelo ahora!

Aceptamos pago por tarjeta de Crédito y Débito a través de PayPal. Aceptamos 3 y 6 meses sin intereses a través de PayPal con tarjetas de crédito participantes. También aceptamos pagos directamente por depósito o transferencia y depósito en tiendas Oxxo.

Pagos fuera de México: Aceptamos pago por tarjeta de Crédito y Débito a través de PayPal. También aceptamos pagos por depósito en efectivo por Western Union.

Precios en Pesos Mexicanos (MXN) y Dólares Americanos (USD)

¿Tienes dudas?

Contáctanos por WhatsApp, estaremos muy contentos de chatear contigo!

Únete a nuestro canal de Telegram para recibir notificaciones de nuestros eventos gratuitos

Canal Telegram

Acerca del Instructor

MTI. David Gutiérrez

Application Engineer en Microchip Technology Inc.

Desarrollador de múltiples herramientas de software para Microcontroladores. Más de 10 años de experiencia en el área. Dentro de sus desarrollos se encuentran protocolos de comunicación IoT ultra ligeros para el sector privado, Tarjetas de Evaluación como Alteri, Xatellite, QuadX, así como sus respectivas UI.  Software de monitoreo para aplicaciones TCP/IP y Bluetooth. Algoritmos para soluciones biomédicas.

Empresas que han confiado en nosotros:

Recibe en tu correo información de nuestros eventos

 

Recibe en tu correo electrónico información de nuestros cursos, eventos y nuevos lanzamientos. 

Únete a nuestro grupo de WhatsApp en donde podrás enterarte de nuestros eventos, becas, webinars y más.

Grupo WhatsApp

Otros cursos que te pueden interesar

dsPIC Dual-Core DSP

Programación dsPIC Dual-Core y Procesamiento Digital de Señales DSP

WIFI con PIC MQTT

Programación ARM SAMD21

Aprender a programar microcontroladores ARM SAMD21 en C

Pantallas HMI Nextion

Desarrollo con pantallas Touch HMI para aplicaciones electrónicas e industriales

tarjeta PIC18F4550 USB

USB con PIC

Aprende a desarrollar aplicaciones USB con PIC y desarrollar interfaces gráficas con Visual C#.

¿Cuáles Sistemas Operativos puedo utilizar para tomar el curso?

Windows, Linux o Mac OS.

¿Qué conocimientos necesito para tomar este curso?

Iniciamos desde cero, sin embargo, parar mejor aprovechamiento del curso, recomendamos nociones de electrónica digital.

¿Cuál programa se utilizará para desarrollar el código?

MPLAB X

¿Tiene algún costo adicional los programas a utilizar?

No, todos los programas que utilizaremos son sin costo.

¿Cuáles son los requerimientos mínimos de sistema?

¿En cuántas exhibiciones puedo pagar el curso?

Aceptamos 3 y 6 MESES SIN INTERESES a través de PayPal con tarjetas de crédito participantes. También puedes pagar directamente con nosotros (por depósito/transferencia bancaria y depósito en Oxxo) en 2 exhibiciones. Para más información mándanos un correo a cursos@dignal.com

¿Por qué tomar el curso con nosotros?

Con años de experiencia hemos detectado patrones clave para el aprendizaje de Microcontroladores. Uno de ellos es enseñar a nuestros alumnos de tal manera que el conocimiento recibido le pueda ser útil para aplicarlo a otras áreas. Por ejemplo, cuando nuestros alumnos adquieren nuestro curso y aprenden a utilizar un Microcontrolador PIC, con las técnicas adquiridas de hardware y programación se les facilita notablemente el aprender a utilizar algún otro microcontrolador de otro fabricante como Texas Instruments, Freescale, etc.

¿Cuál compilador se utilizará en el curso?

Estaremos utilizando el compilador XC16 el cual es el compilador oficial para Microcontroladores PIC de 16 bits de Microchip Technology Inc.

Preguntas Frecuentes

Contáctanos si tienes más dudas

Contáctanos en cursos@dignal.com.
Estaremos felices de atenderte!

Curso ANSI C México

WhatsApp

Escríbenos o llámanos! será un placer atenderte.

(+52) 9931196566

Correo de contacto

cursos@dignal.com