Files
JBao_Temp_Humi_Fan_FW/apps/usr_app/app_disp.h
T
wuchuyuan 5cc7e9dbd6 接入温湿度风扇产品固件(仲裁/条件/定时/显示),并补齐规格书与外设驱动
新增 usr_app 产品逻辑:手动>定时>条件仲裁、条件控温湿、定时任务、数码管显示、
按键/LED、风扇档位、NVM 掉电恢复、配对与开关机,上电按规格恢复上次状态。
新增 usr_periph:AHT20、CT1642、板级引脚与硬件封装;见宝协议 cond_config
改为 7 字节编解码,并接入产品 DP。
补充《温湿度风扇_固件需求规格书》,工程加入对应源文件。
.gitignore 忽略 WorkBuddy/Cursor 本地会话
2026-08-31 15:17:27 +08:00

69 lines
2.5 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/******************************************************************************
* @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~-1G 段负号);<-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__ */