数码管调转180°
This commit is contained in:
@@ -2,8 +2,11 @@
|
|||||||
* @file board_pin.h
|
* @file board_pin.h
|
||||||
* @brief CBR3 温湿度风扇板级引脚、电平与时序(换板只改本文件)
|
* @brief CBR3 温湿度风扇板级引脚、电平与时序(换板只改本文件)
|
||||||
* @author cyWu <1917507415@qq.com>
|
* @author cyWu <1917507415@qq.com>
|
||||||
* @date 2026.08.29
|
* @date 2026.09.04
|
||||||
* @version V1.0.0,首次发布(P0 Bring-up)
|
* @version V1.1.0,数码管转机 180°(BOARD_DISP_ROTATE_180)
|
||||||
|
* @history
|
||||||
|
* - V1.1.0, 2026.09.04, cyWu, 转机后温湿窗口/十个位对调 + 段码旋转
|
||||||
|
* - V1.0.0, 2026.08.29, cyWu, 首次发布(P0 Bring-up)
|
||||||
*
|
*
|
||||||
* @note 产品 GPIO 全部集中到本文件;板级 board_jl701n_demo_cfg.h 只保留
|
* @note 产品 GPIO 全部集中到本文件;板级 board_jl701n_demo_cfg.h 只保留
|
||||||
* UART0_TX=PG6 一项改动。CT1642 用 PG0(CLK)/PG1(DATA),AHT20 用
|
* UART0_TX=PG6 一项改动。CT1642 用 PG0(CLK)/PG1(DATA),AHT20 用
|
||||||
@@ -126,11 +129,26 @@
|
|||||||
* (bit0 先发 → 落到 Q2 引脚;PCB 上 Q2 接哪段即"软件 A 段"对应的物理段)
|
* (bit0 先发 → 落到 Q2 引脚;PCB 上 Q2 接哪段即"软件 A 段"对应的物理段)
|
||||||
* COM 位选 → 物理管位映射(2026-08-29 SCAN_TEST=2 实测定型):
|
* COM 位选 → 物理管位映射(2026-08-29 SCAN_TEST=2 实测定型):
|
||||||
* C1=湿度十位 C2=湿度个位 C3=温度十位 C4=温度个位(默认假定温/湿相反,已对调)
|
* C1=湿度十位 C2=湿度个位 C3=温度十位 C4=温度个位(默认假定温/湿相反,已对调)
|
||||||
|
*
|
||||||
|
* 转机 180°(2026-09-04):整板相对窗口旋转后,视觉上
|
||||||
|
* ① 每只管子倒过来:A↔D、B↔E、C↔F,G/DP 不动(段码在 bsp_ct1642_send_frame 里重映射)
|
||||||
|
* ② 温/湿窗口对调,且十位/个位左右对调。
|
||||||
|
* 未改软件时典型现象:25/57 会看成「L5 / 52」(7 倒过来像 L)。
|
||||||
|
* 0 = 旧板方向;1 = 转机后的量产方向。
|
||||||
*/
|
*/
|
||||||
|
#define BOARD_DISP_ROTATE_180 1
|
||||||
|
|
||||||
|
#if BOARD_DISP_ROTATE_180
|
||||||
|
#define BOARD_DISP_COM_TEMP_TEN 0x02 /**< C2:转机后落到温度十位 */
|
||||||
|
#define BOARD_DISP_COM_TEMP_ONE 0x01 /**< C1:转机后落到温度个位 */
|
||||||
|
#define BOARD_DISP_COM_HUMI_TEN 0x08 /**< C4:转机后落到湿度十位 */
|
||||||
|
#define BOARD_DISP_COM_HUMI_ONE 0x04 /**< C3:转机后落到湿度个位 */
|
||||||
|
#else
|
||||||
#define BOARD_DISP_COM_TEMP_TEN 0x04 /**< C3 = 温度十位(实测定型) */
|
#define BOARD_DISP_COM_TEMP_TEN 0x04 /**< C3 = 温度十位(实测定型) */
|
||||||
#define BOARD_DISP_COM_TEMP_ONE 0x08 /**< C4 = 温度个位(实测定型) */
|
#define BOARD_DISP_COM_TEMP_ONE 0x08 /**< C4 = 温度个位(实测定型) */
|
||||||
#define BOARD_DISP_COM_HUMI_TEN 0x01 /**< C1 = 湿度十位(实测定型) */
|
#define BOARD_DISP_COM_HUMI_TEN 0x01 /**< C1 = 湿度十位(实测定型) */
|
||||||
#define BOARD_DISP_COM_HUMI_ONE 0x02 /**< C2 = 湿度个位(实测定型) */
|
#define BOARD_DISP_COM_HUMI_ONE 0x02 /**< C2 = 湿度个位(实测定型) */
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 扫段调试模式(P0 台上定型用,2026-08-29 已全部定型,正常固件保持 0):
|
* 扫段调试模式(P0 台上定型用,2026-08-29 已全部定型,正常固件保持 0):
|
||||||
|
|||||||
@@ -2,8 +2,11 @@
|
|||||||
* @file bsp_ct1642.c
|
* @file bsp_ct1642.c
|
||||||
* @brief CBR3 CT1642 类数码管驱动实现(软件移位)
|
* @brief CBR3 CT1642 类数码管驱动实现(软件移位)
|
||||||
* @author cyWu <1917507415@qq.com>
|
* @author cyWu <1917507415@qq.com>
|
||||||
* @date 2026.08.29
|
* @date 2026.09.04
|
||||||
* @version V1.0.1,IO 分离:CT1642 独立 PG0=CLK/PG1=DATA,无总线共享机制
|
* @version V1.1.0,转机 180°:段码 A↔D/B↔E/C↔F(BOARD_DISP_ROTATE_180)
|
||||||
|
* @history
|
||||||
|
* - V1.1.0, 2026.09.04, cyWu, 数码管整板旋转 180° 后补偿段码
|
||||||
|
* - V1.0.1, 2026.08.29, cyWu, IO 分离:CT1642 独立 PG0=CLK/PG1=DATA
|
||||||
*
|
*
|
||||||
* @note 驱动协议严格参照 CT1642 手册(与 CSDN yitx 一致):
|
* @note 驱动协议严格参照 CT1642 手册(与 CSDN yitx 一致):
|
||||||
* 一帧 = 18bit,CLK 上升沿采样 DATA(DATA 只在 CLK=低时改变):
|
* 一帧 = 18bit,CLK 上升沿采样 DATA(DATA 只在 CLK=低时改变):
|
||||||
@@ -143,6 +146,10 @@ static void ct1642_xfer(uint8_t seg, uint8_t com)
|
|||||||
*/
|
*/
|
||||||
void bsp_ct1642_send_frame(uint8_t seg, uint8_t com)
|
void bsp_ct1642_send_frame(uint8_t seg, uint8_t com)
|
||||||
{
|
{
|
||||||
|
#if BOARD_DISP_ROTATE_180
|
||||||
|
/* 管倒过来看:视觉 A/B/C 落在物理 D/E/F,视觉 D/E/F 落在物理 A/B/C;G/DP 不动 */
|
||||||
|
seg = (uint8_t)(((seg & 0x07u) << 3) | ((seg & 0x38u) >> 3) | (seg & 0xC0u));
|
||||||
|
#endif
|
||||||
// ct1642_xfer(0, 0);
|
// ct1642_xfer(0, 0);
|
||||||
ct1642_xfer(seg, com); /* 单帧:18bit 移位 + 锁存 + 输出,无消影预帧 */
|
ct1642_xfer(seg, com); /* 单帧:18bit 移位 + 锁存 + 输出,无消影预帧 */
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,8 +2,11 @@
|
|||||||
* @file bsp_ct1642.h
|
* @file bsp_ct1642.h
|
||||||
* @brief CBR3 CT1642 类数码管驱动:18bit 移位、锁存、送出
|
* @brief CBR3 CT1642 类数码管驱动:18bit 移位、锁存、送出
|
||||||
* @author cyWu <1917507415@qq.com>
|
* @author cyWu <1917507415@qq.com>
|
||||||
* @date 2026.08.29
|
* @date 2026.09.04
|
||||||
* @version V1.0.1,IO 分离:CT1642 独立 PG0=CLK/PG1=DATA(飞线),AHT20
|
* @version V1.1.0,转机 180° 段码补偿(见 BOARD_DISP_ROTATE_180)
|
||||||
|
* @history
|
||||||
|
* - V1.1.0, 2026.09.04, cyWu, send_frame 内按宏做 A↔D/B↔E/C↔F
|
||||||
|
* - V1.0.1, 2026.08.29, cyWu, IO 分离:CT1642 独立 PG0=CLK/PG1=DATA(飞线),AHT20
|
||||||
* 独占 PC4/PC5,无总线共享机制
|
* 独占 PC4/PC5,无总线共享机制
|
||||||
*
|
*
|
||||||
* @note PG0=CLK,PG1=DATA,独立引脚、无总线锁,可随时调用。
|
* @note PG0=CLK,PG1=DATA,独立引脚、无总线锁,可随时调用。
|
||||||
|
|||||||
Reference in New Issue
Block a user