1 Star 0 Fork 8

Anderson/vtor_elec_module

forked from vtor3478/vtor_elec_module 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
vtor_led.h 2.98 KB
一键复制 编辑 原始数据 按行查看 历史
#ifndef __VTOR_LED_H_
#define __VTOR_LED_H_
#ifdef __cplusplus
extern "C" {
#endif
#include "vtor_elec_module_config.h"
#ifdef __VTOR_LED__
/*
操作说明
闪烁灯情况下
周期固定为为3000ms,
arr为亮灭周期,此值越大,双闪(或三闪)的间隔
ccr为在arr周期内亮灭的时间,此值越大,灯亮的时间越长,就是依靠此值区分长短亮
cycleTime为在3000ms内,对led有效控制的时间,单闪与多闪就是依靠这个值
呼吸灯情况下
arr为亮度调节等级,数字越大,亮度等级越多,但更容易产生闪烁现象
小 少,但更不容易闪烁
综合来看,24比较好
ccr为自动变化的亮度,不需要修改,为保证能平稳变化,建议数字使用0
cycleTime为总呼吸时间,会根据此变量计算每级亮度持续时间,
数字越小,呼吸越快,数字越大,呼吸越缓,依自身情况而定即可
mode 灯 参考模型 arr参数 ccr参数 cycleTime参数
序号 状态 1亮,0灭 单周期时间 亮时间 亮灭总时间
0 常灭 00000 00000 0 0 0
1 常亮 11111 11111 3000 3000 3000
2 3秒亮灭 11111 00000 3000 1500 3000
3 单短慢闪 10000 00000 200 100 200
4 双短慢闪 10100 00000 200 100 400
5 三短慢闪 10101 00000 200 100 600
6 单长慢闪 11000 00000 500 400 500
7 双长慢闪 11011 00000 500 400 1000
8 三长慢闪 11011 01101 500 400 1500
9 短快闪 10101 01010 200 100 3000
10 中快闪 10101 01010 500 200 3000
11 长快闪 11011 01101 1000 900 3000
12 慢呼吸 01234 43210 24 0 3000
13 中呼吸 01234 43210 24 0 1000
14 快呼吸 02420 02420 24 0 300
*/
// 闪烁灯的周期,一般3000ms足矣,
#define VTOR_LED_CONFIG_BLINK_TOTAL_TIME 3000
// 呼吸灯情况下,肉眼对较高亮度变化不明显,所以不达到最大亮度
#define VTOR_LED_CONFIG_BREATH_MAX_BRIGHTNESS_DIFF 5
typedef struct
{
// 无操作
// 呼吸,渐亮,渐灭
// 单闪,双闪,三闪,
// 目前只支持呼吸灯
int8_t mode;
// arr cnt ccr 共同模拟变化的pwm
int16_t pwmArr; // 推荐默认值24
int16_t pwmCnt;
int16_t pwmCcr;
int8_t pwmCcrInc; // 推荐默认值1
// 亮度持续时间 亮度增长步进 亮度等级数量
// 总共呼吸时间为 (持续时间+1)*40 ms
int16_t holdCnt;
// breath时为arr,推荐默认值(300~3000) / 40 - 1;
// blink时为ccr,推荐100~3000
int16_t holdCcr; //别名breathArr,
int8_t lastState;
int8_t curState;
void (*setState)(int8_t);
}VtorLed;
void VtorLed_Init(void);
void VtorLed_SetMode(VtorLed* led, int8_t mode);
void VtorLed_SetParams(VtorLed* led, int16_t arr, int16_t ccr, int16_t cycleTime);
void VtorLed_Run(VtorLed* led, int8_t tickInc);
#endif // __VTOR_LED__
#ifdef __cplusplus
}
#endif
#endif
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/Thomas_Ti/vtor_elec_module.git
git@gitee.com:Thomas_Ti/vtor_elec_module.git
Thomas_Ti
vtor_elec_module
vtor_elec_module
main

搜索帮助

0d507c66 1850385 C8b1a773 1850385