Para controlar el led RGB, utilice las funciones definidas en el módulo
FM4_leds_sw disponible en el directorio bsp.
Ejercicio 2: Aplicación final
Preparación del entorno.
Abre el proyecto lab2 en el entorno de desarrollo Keil.
Selecciona el targetlab2.1.
Código de la aplicación.
Completa el código lab2.1.c. Debe implementar la lógica para el
contador de 3 bits (b2b1b0) según el esquema descrito.
Utiliza las funciones del módulo FM4_leds_sw para mostrar el
valor del contador en el led RGB.
La figura siguiente ilustra la arquitectura software de la aplicación.
En el bucle principal se ejecutan:
Las tareas de control del contador y de los LEDs, con un periodo de 1 ms.
La tarea de gestión del LED LED_ETH, que aplica el efecto breathing
y se ejecutaen cada iteración del bucle.
Esta programación temporal de las tareas permite ejecutar en paralelo
las funciones de control del contador y la gestión del LED LED_ETH.
/** * @file lab2.1.c * @brief Práctica de gestión de pulsaciones y control de LEDs en FM4. * @details * - Detecta pulsaciones cortas y largas en SW2. * - Controla el LED RGB y el LED_ETH con efecto "breathing". * - Utiliza periféricos GPIO y SysTick. * @author [Tu Nombre] * @date 2025/09/17 *//** * @brief Programa principal. * @details * - Inicializa periféricos (GPIO, SysTick, LEDs). * - Ejecuta un bucle cíclico que: * - Detecta pulsaciones en SW2. * - Cambia el color del LED RGB según pulsaciones. * - Aplica efecto "breathing" al LED_ETH. * @return No retorna (bucle infinito). */intmain(void){// Configuración de periféricos:// - Config GPIO para utilizar leds y sw2// -Config pin P7D/D8:// Pin P7D/D8 como salida// Pin P7D/D8 a 0// -Config SysTick (1ms):SysTick_Init(SystemCoreClock/1000U);// Ejecutivo cíclicowhile(1){if(......)// Si SysTick ha desbordado{// Aquí va el código que se ejecuta cada 1 msGPIO_ChannelToggle(P7D);// Actualiza P7D/D8}// Aquí va el código que se ejecuta en cada iteraciónº// Ejemplo: Parpadeo led ETHbreath_led(LED_ETH);}}
Verificación del funcionamiento.
Compila y programa el microcontrolador.
Depura el código, y verifica utilizando el debugger de Keil que la
aplicación se comporta según lo especificado.
Exploración personal:
Experimenta con diferentes secuencias de encendido para los LEDs.
Implementa el efecto breathing también en el LED RGB.
Modifica la máquina de estados (MEF) para incorporar nuevos patrones de
interacción, como doble pulsación o combinaciones de pulsación corta y larga.