修改适配非等宽字体的计数器

This commit is contained in:
2026-08-26 16:23:04 +08:00
parent 950d0d0386
commit 190155913a
10 changed files with 267 additions and 70 deletions
+39
View File
@@ -70,6 +70,7 @@ class SysPara;
#define PRINT_CTRL_ADDR_BASE 0xa400
#define PRINT_DIGITAL_CHAR_BASE_ADDR (0xe000)
#define PRINT_DIGITAL_CHAR_WIDTH_TABLE_BASE_ADDR 0xf000
#define WRITE_CALENDAR_DAT_ADDR (0xb100)
@@ -242,7 +243,20 @@ public :
void ReadCnt1GroupStatus(void);
void writeCnt1GroupSetting(bool bCntByGroupEnable);
void writeFpgaCalandar(bool Enable);
/**
* @brief 写入计数器变量控制参数
* 这是旧的,用于等宽字体的计数器变量控制
*
*/
void writeFpgaVariCtrl();
/**
* @brief 写入计数器变量控制,此版本支持非等宽字体的变量控制
*
*/
void writeFpgaVariCtrlv2();
void readCalandarDat();
void resumeFault();
void highVoltageCtrl(int val);
@@ -391,6 +405,31 @@ int pwm_ink;
unsigned int dummy:1;
}reg_var_print_ctrl_t;
/**
* @brief 相比于 @see reg_var_print_ctrl_t ,这个版本多了 alignLeft enbVarWidthFont。两个字段,用于支持非等宽字体
*
*/
typedef struct {
// 0x51
unsigned int varDigitalNum:4; // 数字的个数
unsigned int charRamBaseAddr:12; // 基址
unsigned int colOffset:16; // 列偏移
// 0x54
unsigned int horizonWidth:9;//字模宽度
unsigned int verticalOffset:6; // 行偏移
unsigned int charRowNum:6; // 每个字符占行个数
unsigned int charColNum:6; // 每个字符占列个数
unsigned int varTypeSel:4;
unsigned int enbVarWidthFont:1; // 启用非等宽字体
// 0x59
unsigned int reserved: 3;
unsigned int charSpacing: 4;
unsigned int alignLeft:1; // 使用非等宽字体时,计数器的对齐方向。 0左 1右
}reg_var_print_ctrl_t_v2;
};
#endif /* DEVOP_H_ */