增加了部分led的支持

This commit is contained in:
NeoZng 2023-02-14 11:05:41 +08:00
parent 8fa03012cf
commit b0fcab53ad
7 changed files with 81 additions and 2 deletions

View File

@ -130,7 +130,8 @@ modules/imu/BMI088driver.c \
modules/imu/BMI088Middleware.c \
modules/imu/ins_task.c \
modules/ist8310/ist8310.c \
modules/led/led_task.c \
modules/led_task/led_task.c \
modules/led/led.c \
modules/master_machine/master_process.c \
modules/master_machine/seasky_protocol.c \
modules/motor/DJImotor/dji_motor.c \
@ -251,6 +252,7 @@ C_INCLUDES = \
-Imodules/imu \
-Imodules/ist8310 \
-Imodules/led \
-Imodules/led_task \
-Imodules/master_machine \
-Imodules/motor/DJImotor \
-Imodules/motor/LKmotor \

View File

@ -26,7 +26,7 @@ typedef struct
uint32_t channel; // 通道
uint32_t period; // 周期
uint32_t pulse; // 脉宽
void (*callback)(struct pwm_ins_temp *); // DMA传输完成回调函数
void (*callback)(PWMInstance*); // DMA传输完成回调函数
void *id; // 实例ID
} PWM_Init_Config_s;

44
modules/led/led.c Normal file
View File

@ -0,0 +1,44 @@
#include "led.h"
#include "stdlib.h"
#include "string.h"
#include "user_lib.h"
static uint8_t idx;
static LEDInstance* bsp_led_ins[LED_MAX_NUM] = {NULL};
LEDInstance *LEDRegister(LED_Init_Config_s *led_config)
{
LEDInstance *led_ins = (LEDInstance *)zero_malloc(sizeof(LEDInstance));
// 剩下的值暂时都被置零
led_ins->led_pwm=GPIORegister(&led_config->pwm_config);
led_ins->led_switch=led_config->init_swtich;
bsp_led_ins[idx++] = led_ins;
return led_ins;
}
void LEDSet(LEDInstance *_led,uint8_t alpha,uint8_t color_value,uint8_t brightness)
{
}
void LEDSwitch(LEDInstance *_led,uint8_t led_switch)
{
if(led_switch==1)
{
_led->led_switch=1;
}
else
{
_led->led_switch=0;
// PWMSetPeriod(_led,0);
}
}
void LEDShow()
{
}

33
modules/led/led.h Normal file
View File

@ -0,0 +1,33 @@
#ifndef _LED_H_
#define _LED_H_
#include "stdint.h"
#include "bsp_pwm.h"
#define LED_MAX_NUM 3
typedef struct
{
PWMInstance* led_pwm;
uint8_t led_alpha; // 透明度,通过pwm频率改变
uint8_t led_brightness; // 亮度,通过电压改变(如果可以,使用dac)
uint8_t led_color; // rgb value,0-255
uint8_t led_switch // 开关,on1 off0
// void (*action_callback)(void); // led动作回调函数
} LEDInstance;
typedef struct
{
PWM_Init_Config_s pwm_config;
uint8_t init_swtich; // 初始化开关
} LED_Init_Config_s;
LEDInstance* LEDRegister(LED_Init_Config_s* led_config);
void LEDSet(LEDInstance *_led,uint8_t alpha,uint8_t color_value,uint8_t brightness);
void LEDSwitch(LEDInstance *_led,uint8_t led_switch);
void LEDShow();
#endif // !_LED_H_