/** * @file LED_BREATH_ATY.h * * @param Project DEVICE_GENERAL_ATY_LIB * * @author ATY * * @copyright * - Copyright 2017 - 2026 MZ-ATY * - This code follows: * - MZ-ATY Various Contents Joint Statement - * * https://mengze.top/MZ-ATY_VCJS * - CC 4.0 BY-NC-SA - * * https://creativecommons.org/licenses/by-nc-sa/4.0/ * - Your use will be deemed to have accepted the terms of this statement. * * @brief functions of LED for C platform * * @version * - 1_01_250814 > ATY * -# Preliminary version, first Release ******************************************************************************** */ #ifndef __LED_BREATH_ATY_H #define __LED_BREATH_ATY_H #include "INCLUDE_ATY.h" /******************************* For user *************************************/ #define BREATH_LED_MAX 100 // LED最大亮度 #define BREATH_LED_MIN 50 // LED最小亮度 #define BREATH_LED_MID (BREATH_LED_MIN + ((BREATH_LED_MAX - BREATH_LED_MIN) / 2)) // LED中等亮度 #define BREATH_LED_SPEED_MID 30 // LED中等速度 /******************************************************************************/ typedef enum { BREATH_MODE_SMOOTH, // 平滑呼吸 BREATH_MODE_STEP, // 阶梯呼吸 BREATH_MODE_FAST, // 快速呼吸 BREATH_MODE_SLOW, // 慢速呼吸 BREATH_MODE_PAUSE_TOP, // 顶部停顿 BREATH_MODE_PAUSE_BOTTOM, // 底部停顿 BREATH_MODE_PULSE // 突然亮起 } LedBreathMode_t; struct LED_BREATH_ATY_Dev { LedBreathMode_t breathMode; uint32_t breathTimer; int8_t breathDir; uint8_t breathVal; uint8_t breathPauseCnt; uint8_t breathStep; uint8_t breathMax; uint8_t breathMin; uint8_t breathUpdate; void (*pwmSet)(uint8_t breathVal); uint8_t lock; uint8_t debugEnable; void (*LOG)(const char*, ...); }; void LedBreath(struct LED_BREATH_ATY_Dev* dev); void SetLedBreathMode(struct LED_BREATH_ATY_Dev* dev, LedBreathMode_t mode); #endif /* __LED_BREATH_ATY_H */ /******************************** End Of File *********************************/