/************************************************************************************* * @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 设置RGB红灯亮度 * @param[in/out] val 【参数注释】 * * @warning 【不可重入,阻塞等警告】 * @note 【重大修改】 *************************************************************************************/ void mw_setRGB_RedBrightness(uint16_t val) { bsp_changeLed_brightness(RGB_RED, val); } /************************************************************************************* * @brief 设置RGB绿灯亮度 * @param[in/out] val 【参数注释】 * * @warning 【不可重入,阻塞等警告】 * @note 【重大修改】 *************************************************************************************/ void mw_setRGB_GreenBrightness(uint16_t val) { bsp_changeLed_brightness(RGB_GREEN, val); } /************************************************************************************* * @brief 设置RGB蓝灯亮度 * @param[in/out] val 【参数注释】 * * @warning 【不可重入,阻塞等警告】 * @note 【重大修改】 *************************************************************************************/ void mw_setRGB_BlueBrightness(uint16_t val) { bsp_changeLed_brightness(RGB_BLUE, val); } /************************************************************************************* * @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; /* 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; /* init all led peripherals */ // for(e_val = LED1; e_val < led_num; e_val++) // { // led_drv_buf[e_val].init(); // } led_drv_buf[LED1].init(); led_drv_buf[LED2].init(); } /************************************************************************************* * @brief RGB彩灯初始化 * * @warning 【不可重入,阻塞等警告】 * @note 【重大修改】 *************************************************************************************/ void mw_RGB_LED_Init(void) { bsp_RGB_LedInit(); }