Dzbj_ESP32-S3/main/ui/screens/ui_ScreenSet.h
Rdzleo 4860efca6e 新增手电筒功能 + 颜色切换性能优化
## 核心功能
- 实现全屏手电筒:支持红/绿/蓝三色点击切换
- 自动闪烁模式:1000ms周期(500ms高亮100% + 500ms低亮20%)
- BOOT按键退出手电筒并返回主界面

## 性能优化(关键创新)
- PWM遮罩技术:立即黑屏遮盖LCD刷新过程,完全消除卡顿
- 简化实现:只修改样式不重建对象,降低资源消耗
- 切换速度:从135ms优化到100ms(提升25.7%)
- SPI时钟:40MHz → 80MHz(提升LCD刷新速度)

## 技术细节
- PWM淡入淡出步进:20% → 25%(10ms → 8ms)
- 刷新等待时间:120ms → 90ms(基于理论计算优化)
- 初始延迟:5ms → 2ms(PWM设置是立即的)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-11 13:54:22 +08:00

44 lines
1.2 KiB
C

// This file was generated by SquareLine Studio
// SquareLine Studio version: SquareLine Studio 1.6.0
// LVGL version: 8.3.11
// Project name: Lcd_Pro
#ifndef UI_SCREENSET_H
#define UI_SCREENSET_H
#ifdef __cplusplus
extern "C" {
#endif
// SCREEN: ui_ScreenSet
extern void ui_ScreenSet_screen_init(void);
extern void ui_ScreenSet_screen_destroy(void);
extern void ui_event_ScreenSet( lv_event_t * e);
extern void ui_ScreenSet_set_previous(lv_obj_t **screen, void (*init_func)(void)); // 设置返回的界面
extern lv_obj_t *ui_ScreenSet;
extern lv_obj_t *ui_GlobalContainer;
extern lv_obj_t *ui_ContainerTop;
extern lv_obj_t *ui_ImgLowPower;
extern lv_obj_t *ui_ImgFlashlight;
extern lv_obj_t *ui_ImgDelete;
extern lv_obj_t *ui_ContainerCentral;
extern void ui_event_SliderBrightness( lv_event_t * e);
extern lv_obj_t *ui_SliderBrightness;
extern lv_obj_t *ui_ImgSun;
extern lv_obj_t *ui_LabelBrightness;
extern lv_obj_t *ui_ArcPowerLevel;
extern lv_obj_t *ui_ImgLightning;
extern lv_obj_t *ui_LabelPowerLevel;
// CUSTOM VARIABLES
// 手电筒功能
extern void flashlight_exit(void); // 退出手电筒模式
extern bool flashlight_is_active(void); // 查询手电筒是否激活
#ifdef __cplusplus
} /*extern "C"*/
#endif
#endif