/************************************************************************************* * @File Name: mw_led.c * @brief led驱动文件 * @Version : 1.0 * @Create Date : 2025-04-29 * @Author : 小鱼干儿看世界 email : 3026007337@qq.com * * @copyright Copyright (c) 2025 Tianyun Mountain * * modification history : * Date: Version: Author: Description: *************************************************************************************/ #include "mw_led.h" #include /* led middleware instantiation */ mw_led_t led_drv_buf[led_num]; /* led1 基础函数包*/ static void mw_led1_on(void) { bsp_led_on(LED1); } static void mw_led1_off(void) { bsp_led_off(LED1); } static uint8_t mw_get_led1_state(void) { uint8_t retVal = 0; retVal = bsp_get_led_ttlState(LED1); return retVal; } /* led2 基础函数包 */ static void mw_led2_on(void) { // bsp_led_on(LED2); } static void mw_led2_off(void) { // bsp_led_off(LED2); } static uint8_t mw_get_led2_state(void) { uint8_t retVal = 0; // retVal = bsp_get_led_ttlState(LED2); return retVal; } /************************************************************************************* * @brief Get the obj of Led. * * @param[in/out] e_led_type * @return mw_led_t * @warning * @note *************************************************************************************/ mw_led_t mw_get_led_obj(led_type_enum e_led_type) { if(e_led_type >= led_num) { // invalid while(1); } return led_drv_buf[e_led_type]; } /************************************************************************************* * @brief Led driver installation. * * @warning * @note *************************************************************************************/ void mw_led_drv_init(void) { led_type_enum e_val; /* led1 installation */ led_drv_buf[LED1].led_drv = LED1; led_drv_buf[LED1].init = bsp_led1_init; led_drv_buf[LED1].on = mw_led1_on; led_drv_buf[LED1].off = mw_led1_off; led_drv_buf[LED1].state = mw_get_led1_state; led_drv_buf[LED1].changeBrightness = 0; // /* led2 installation */ // led_drv_buf[LED2].led_drv = LED2; // led_drv_buf[LED2].init = bsp_led2_init; // led_drv_buf[LED2].on = mw_led2_on; // led_drv_buf[LED2].off = mw_led2_off; // led_drv_buf[LED2].state = mw_get_led2_state; // led_drv_buf[LED2].changeBrightness = 0; /* RGB_RED installation */ led_drv_buf[RGB_RED].led_drv = RGB_RED; led_drv_buf[RGB_RED].init = bsp_RGB_RedInit; led_drv_buf[RGB_RED].on = 0; led_drv_buf[RGB_RED].off = 0; led_drv_buf[RGB_RED].state = 0; led_drv_buf[RGB_RED].changeBrightness = bsp_changeBrightness_RGB_Red; /* RGB_GREEN installation */ led_drv_buf[RGB_GREEN].led_drv = RGB_GREEN; led_drv_buf[RGB_GREEN].init = bsp_RGB_GreenInit; led_drv_buf[RGB_GREEN].on = 0; led_drv_buf[RGB_GREEN].off = 0; led_drv_buf[RGB_GREEN].state = 0; led_drv_buf[RGB_GREEN].changeBrightness = bsp_changeBrightness_RGB_Green; /* RGB_BLUE installation */ led_drv_buf[RGB_BLUE].led_drv = RGB_BLUE; led_drv_buf[RGB_BLUE].init = bsp_RGB_BlueInit; led_drv_buf[RGB_BLUE].on = 0; led_drv_buf[RGB_BLUE].off = 0; led_drv_buf[RGB_BLUE].state = 0; led_drv_buf[RGB_BLUE].changeBrightness = bsp_changeBrightness_RGB_Blue; /* init all led peripherals */ for(e_val = LED1; e_val < led_num; e_val++) { if(led_drv_buf[e_val].init != NULL) { led_drv_buf[e_val].init(); } else { while(1); } } } // /************************************************************************************* // * @brief RGB彩灯初始化 // * // * @warning 【不可重入,阻塞等警告】 // * @note 【重大修改】 // *************************************************************************************/ // void mw_RGB_LED_Init(void) // { // bsp_RGB_LedInit(); // }