新增 usr_app 产品逻辑:手动>定时>条件仲裁、条件控温湿、定时任务、数码管显示、 按键/LED、风扇档位、NVM 掉电恢复、配对与开关机,上电按规格恢复上次状态。 新增 usr_periph:AHT20、CT1642、板级引脚与硬件封装;见宝协议 cond_config 改为 7 字节编解码,并接入产品 DP。 补充《温湿度风扇_固件需求规格书》,工程加入对应源文件。 .gitignore 忽略 WorkBuddy/Cursor 本地会话
69 lines
2.5 KiB
C
69 lines
2.5 KiB
C
/******************************************************************************
|
||
* @file app_disp.h
|
||
* @brief CBR3 数码管显示:温度/湿度整数、负号、-- 故障、告警闪烁
|
||
* @author cyWu <1917507415@qq.com>
|
||
* @date 2026.08.29
|
||
* @version V1.1.0
|
||
* @history
|
||
* - V1.0.0, 2026.08.29, cyWu, 首次发布
|
||
* - V1.1.0, 2026.08.31, cyWu, P1 加告警闪烁:温度/湿度管独立 500ms 亮灭,
|
||
* 由 app_disp_set_temp/humi_alarm 驱动(P2 条件引擎喂真值,
|
||
* P1 可用 BOARD_DISP_ALARM_TEST 宏强制验证)
|
||
*
|
||
* @note 两块 2 位 7 段数码管:温度管整数 ℃、湿度管整数 %。DP 恒灭。
|
||
* 0~99 显示绝对值;<0 显示 -9~-1(G 段负号);<-9 钳位 -9;>99 钳位 99。
|
||
* 连续失败 3 次双管 "--"(优先于闪烁)。告警闪烁(规格书 8.2)
|
||
* 与吹风解耦:比较成立侧 500ms 亮/500ms 灭,不成立侧常亮数值。
|
||
******************************************************************************/
|
||
|
||
#ifndef __APP_DISP_H__
|
||
#define __APP_DISP_H__
|
||
|
||
#include <stdint.h>
|
||
|
||
/**
|
||
* @brief 初始化显示模块
|
||
* @return 无
|
||
*/
|
||
void app_disp_init(void);
|
||
|
||
/**
|
||
* @brief 业务节拍:计算 4 位要显示什么,写入段码缓冲(不直接打管)
|
||
* @param dt 距上次调用的毫秒数(闪烁相位累加)
|
||
* @note 软关机由 app_disp_scan 处理;本函数只算数据。
|
||
* @return 无
|
||
*/
|
||
void app_disp_run(uint16_t dt);
|
||
|
||
/**
|
||
* @brief 显示动态扫描(快节拍定时器回调):每次点亮 1 位,4 位轮询刷新
|
||
* @note 由 app_disp_init 注册的 BOARD_DISP_SCAN_MS 定时器调用;
|
||
* 必须短、不可阻塞;软关机时 4 位全灭。
|
||
* CT1642 无内部扫描 RAM,靠本函数持续轮询维持 4 位同亮不闪。
|
||
* @return 无
|
||
*/
|
||
void app_disp_scan(void);
|
||
|
||
/**
|
||
* @brief 设置温度比较成立标志:成立时温度管 500ms 闪烁(P2 条件引擎喂)
|
||
* @param en 1=成立(闪),0=不成立(常亮数值)
|
||
* @return 无
|
||
*/
|
||
void app_disp_set_temp_alarm(uint8_t en);
|
||
|
||
/**
|
||
* @brief 设置湿度比较成立标志:成立时湿度管 500ms 闪烁(P2 条件引擎喂)
|
||
* @param en 1=成立(闪),0=不成立(常亮数值)
|
||
* @return 无
|
||
*/
|
||
void app_disp_set_humi_alarm(uint8_t en);
|
||
|
||
/**
|
||
* @brief 温度或湿度管是否处于告警闪烁(供 fault_code=1)
|
||
* @return 1=任一侧告警,0=无
|
||
*/
|
||
uint8_t app_disp_is_alarm(void);
|
||
|
||
#endif /* __APP_DISP_H__ */
|
||
|