81 lines
2.0 KiB
C
Raw Normal View History

/*************************************************************************************
* @File Name: mw_led.c
* @brief:
* @Version : 1.0
* @Create Date : 2024-12-02
* @Author : TianyunV1 email : 3026007337@qq.com
*
* @copyright Copyright (c) 2024 Tianyun Mountain
*
* modification history :
* Date: Version: Author: Description:
*************************************************************************************/
#include "mw_led.h"
#include "bsp_gpio.h"
#include <stdio.h>
/* led pin define */
// LED0 PC13
// #define IO_LED0_PORT (GPIOC)
// #define IO_LED0_RCC_PERIPH (RCC_APB2Periph_GPIOC)
// #define IO_LED0_PIN (GPIO_Pin_13)
/* led middleware instantiation */
mw_led_t led_drv_buf[led_num];
/*************************************************************************************
* @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];
}
/* led1 基础函数包*/
void mw_led1_on(void)
{
bsp_led_on(LED1);
}
void mw_led1_off(void)
{
bsp_led_off(LED1);
}
/* led2 基础函数包 */
void mw_led2_on(void)
{
bsp_led_on(LED2);
}
void mw_led2_off(void)
{
bsp_led_off(LED2);
}
/*************************************************************************************
* @brief Led driver installation.
*
* @warning
* @note
*************************************************************************************/
void mw_led_drv_init(void)
{
led_type_enum e_val;
/* led0 installation */
led_drv_buf[Led1].led_drv = LED1;
led_drv_buf[Led1].on = mw_led0_on;
led_drv_buf[Led1].off = mw_led0_off;
/* init all led peripherals */
for(e_val = Led0; e_val < led_num; e_val++)
{
led_drv_buf[e_val].init();
}
}