Files
K2_DCU/Source/.staticdata/K2DCU/fs/1e648022ba6efd01149b89021ce76b65
2026-04-14 00:56:31 +09:00

157 lines
3.8 KiB
Plaintext

#ifndef SOURCE_DISPLAY_H_
#define SOURCE_DISPLAY_H_
#define ZONE6_DAT *(volatile Uint16*)0x00100001
#define ZONE6_COM *(volatile Uint16*)0x00100000
#define OLED_WIDTH (128U) // ER-OLEDM024 Vertical Pixel 0~127
#define OLED_HEIGHT (64U)
#define OLED_PAGE (8U) // ER-OLEDM024 Page 0~7
#define TXT_ENG_WIDTH (6U)
#define TXT_ENG_HEIGHT (12U)
#define TXT_TYPE_ENG (0U)
#define TXT_TYPE_ETC (1U)
#define TXT_MAX_LEN (22U)
#define TXT_LINE_LEN (5U)
#define OLED_LOAD_PROGRESS_X (14U)
#define OLED_LOAD_PROGRESS_Y (52U)
#define OLED_LOAD_PROGRESS_W (114U)
#define OLED_LOAD_PROGRESS_H (10U)
#define MODE_COMMAND (0U)
#define MODE_DATA (1U)
#define DIR_UP (1U)
#define DIR_DOWN (0U)
typedef signed char int8;
typedef unsigned char Uint8;
typedef enum
{
IDX_OLED_LINE_TITLE = 0U,
IDX_OLED_LINE_1 = 14U,
IDX_OLED_LINE_2 = 27U,
IDX_OLED_LINE_3 = 40U,
IDX_OLED_LINE_4 = 53U
} E_IDX_OLED_LINE;
typedef enum
{
IDX_OLED_ROW_0 = 0U,
IDX_OLED_ROW_1,
IDX_OLED_ROW_2,
IDX_OLED_ROW_3,
IDX_OLED_ROW_4
} E_IDX_OLED_ROW;
typedef enum
{
IDX_OLED_PASS_DIGIT_1 = 0U,
IDX_OLED_PASS_DIGIT_2,
IDX_OLED_PASS_DIGIT_3,
IDX_OLED_PASS_DIGIT_4
} E_IDX_OLED_PASS;
typedef enum
{
IDX_OLED_PAGE_APU1 = 0U, // 0
IDX_OLED_PAGE_APU2, // 1
IDX_OLED_PAGE_MENU1, // 2
IDX_OLED_PAGE_MENU2, // 3
IDX_OLED_PAGE_TEMP, // 4
IDX_OLED_PAGE_SENSOR1, // 5
IDX_OLED_PAGE_SENSOR2, // 6
IDX_OLED_PAGE_SENSOR3, // 7
IDX_OLED_PAGE_SENSOR4, // 8
IDX_OLED_PAGE_WARNING1, // 9
IDX_OLED_PAGE_WARNING2, // 10
IDX_OLED_PAGE_FAULT1, // 11
IDX_OLED_PAGE_FAULT2, // 12
IDX_OLED_PAGE_FAULT3, // 13
IDX_OLED_PAGE_FAULT4, // 14
IDX_OLED_PAGE_FAULT5, // 15
IDX_OLED_PAGE_FAULT6, // 16
IDX_OLED_PAGE_FAULT7, // 17
IDX_OLED_PAGE_RESET_ALARM, // 18
IDX_OLED_PAGE_PASSWORD, // 19
IDX_OLED_PAGE_MAINTENANCE, // 20
IDX_OLED_PAGE_VERSION, // 21
IDX_OLED_PAGE_KEY_TEST, // 21
IDX_OLED_PAGE_SHUTDOWN, // 23
IDX_OLED_PAGE_MAX
} E_IDX_OLED_PAGE;
typedef enum
{
IDX_OLED_MENU_APU = 0U, // 0
IDX_OLED_MENU_TEMP, // 1
IDX_OLED_MENU_SENSOR, // 2
IDX_OLED_MENU_WARNING, // 3
} E_IDX_OLED_MENU1;
typedef enum
{
IDX_OLED_MENU_FAULT = 0U, // 0
IDX_OLED_MENU_RESET, // 1
IDX_OLED_MENU_DEBUG // 2
} E_IDX_OLED_MENU2;
typedef enum
{
IDX_OLED_LINE_FOCUS_1 = 0U,
IDX_OLED_LINE_FOCUS_2,
IDX_OLED_LINE_FOCUS_3,
IDX_OLED_LINE_FOCUS_4
} E_IDX_OLED_LINE_FOCUS;
typedef struct ClassPageHandler
{
Uint16 uiPage;
void (*pAction) (void); // PageTable 참조
} CPageHandler;
typedef struct ClassOledOperValue
{
Uint16 uiBuff[OLED_WIDTH][OLED_PAGE];
Uint16 uiPageNum;
Uint16 uiOldPageNum;
Uint16 uiFocusLine;
Uint16 uiPrevFocusLine;
Uint16 uiFocusDigit;
Uint16 uiProgressValue;
Uint16 uiProgressDone;
Uint16 uiResetAlarmAnswer;
Uint16 uiResetHourAnswer;
int8 cStrBuff[TXT_LINE_LEN][TXT_MAX_LEN];
int8 cAlignBuffer[TXT_MAX_LEN];
struct
{
Uint16 TxtColor;
Uint16 BgColor;
} Color;
struct
{
Uint16 X;
Uint16 Y;
} Point;
} COledOperValue;
void CInitXintf(void);
void CInitOled(void);
void COledReflash(Uint16 x, Uint16 y, Uint16 width, Uint16 height);
void CDisplayPostFail(void);
void CSetPage(Uint16 PageNum);
void CInitKeyOperValue(void);
void CInitializePage(void);
void COledBufferReset(void);
void CDisplayAntiNoiseRefresh(void);
extern COledOperValue OledOperValue;
#endif /* SOURCE_DISPLAY_H_ */