osd1_define.h
来自「这是一个用T108加上瑞萨公司R8C2A做的一个OSD显示。希望能帮上大家。」· C头文件 代码 · 共 329 行
H
329 行
#ifndef __OSD1DEFINE_H__
#define __OSD1DEFINE_H__
#if 1 //for new version
//-------------------------- OSD1 Register Set -------------------------//
#define OSD1_CFG_INDEX 0xA0
#define OSD1_CFG_DATA 0xA1
#define OSD1_RAM_AL 0xA2
#define OSD1_RAM_AH 0xA2
#define OSD1_RAM_DL 0xA3
#define OSD1_RAM_DH 0xA3
//------------------------ OSD1 Register Set End -----------------------//
//-------------------------- OSD1 Register Map -------------------------//
//Global Setting
#define OSD_CTRL 0x00
#define OSD_CHAR_FONT_SIZE 0x01
#define OSD_CHAR2BP_FONT_INDEX 0x02
#define OSD_CHAR4BP_FONT_INDEX 0x03
#define OSD_CHAR2BP_FONT_MEMADD_L 0x04
#define OSD_CHAR2BP_FONT_MEMADD_M 0x05
#define OSD_CHAR4BP_FONT_MEMADD_L 0x06
#define OSD_CHAR4BP_FONT_MEMADD_M 0x07
#define OSD_COLOR_LUT_ADR_PORT 0x08
#define OSD_COLOR_LUT_DATA_PORT 0x09
#define OSD_WINDOWS_SHADOW 0x0A
#define OSD_GLOBAL_ALPHA_BLENDING 0x0B
#define OSD_BSH_COLOR_HIGHBIT 0x0C
#define OSD_FONTROM_INDEX 0x0D
//Menu-1 Setting
#define OSD_MENU1_ENABLE 0x10
#define OSD_MENU1_START_ADR_L 0x11
#define OSD_MENU1_START_ADR_M 0x12
#define OSD_MENU1_END_ADR_L 0x13
#define OSD_MENU1_END_ADR_M 0x14
//Menue-2 Setting
#define OSD_MENU2_ENABLE 0x18
#define OSD_MENU2_START_ADR_L 0x19
#define OSD_MENU2_START_ADR_M 0x1A
#define OSD_MENU2_END_ADR_L 0x1B
#define OSD_MENU2_END_ADR_M 0x1C
//BMP Setting
#define OSD_BMP_CTRL 0x20
#define OSD_BMP_START_ADR_L 0x21
#define OSD_BMP_START_ADR_M 0x22
#define OSD_BMP_APHBLD_CTRL 0x23
#define OSD_BMP_HSIZE_L 0x24
#define OSD_BMP_HSIZE_M 0x25
#define OSD_BMP_VSIZE_L 0x26
#define OSD_BMP_VSIZE_M 0x27
#define OSD_BMP_HSTART_L 0x28
#define OSD_BMP_HSTART_M 0x29
#define OSD_BMP_VSTART_L 0x2A
#define OSD_BMP_VSTART_M 0x2B
#define OSD_BMP_LUT_BASSADR 0x2C
#define OSD_BMP_BACK_COLOR 0x2D
//Pattern Fill
#define OSD_PT_CTRL 0x30
#define OSD_PT_LUT_BASEADD 0x31
#define OSD_PT_HSIZE 0x32
#define OSD_PT_VSIZE 0x33
#define OSD_PT_ROW_SHIFT 0x34
#define OSD_PT_ALPBL_CTRL 0x35
#define OSD_PT_BR_PE 0x36
#define OSD_PT_RAM_WRITE_PORT 0x37
#define OSD_PT_HSTART_LSB 0x38
#define OSD_PT_HSTART_MSB 0x39
#define OSD_PT_VSTART_LSB 0x3A
#define OSD_PT_VSTART_MSB 0x3B
#define OSD_PT_HEND_LSB 0x3C
#define OSD_PT_HEND_MSB 0x3D
#define OSD_PT_VEND_LSB 0x3E
#define OSD_PT_VEND_MSB 0x3F
#define OSD_BLK_WRT_LSB 0x40
#define OSD_BLK_WRT_MSB 0x41
#define OSD_BLK_WRT_SADD_LSB 0x42
#define OSD_BLK_WRT_SADD_MSB 0x43
#define OSD_BLK_WRT_LENGTH 0x44
#define OSD_BLK_WRT_CTR 0x45
//------------------------- OSD1 Register Map End ------------------------//
//-------------------------- OSD1 Font Attribute -------------------------//
#define OSD1FONTWIDTH12 12
#define OSD1FONTWIDTH16 16
#define OSD1FONTHEIGHT8 08
#define OSD1FONTHEIGHT10 10
#define OSD1FONTHEIGHT12 12
#define OSD1FONTHEIGHT14 14
#define OSD1FONTHEIGHT16 16
#define OSD1FONTHEIGHT18 18
#define OSD1FONTHEIGHT20 20
#define OSD1FONTHEIGHT24 24
//-----------------------------------------------------------------------//
//-------------------------- OSD1 Fonts Attribute -----------------------//
#define FontWidth OSD1FONTWIDTH12
#define FontHeight OSD1FONTHEIGHT12 //OSD1FONTHEIGHT18
#define Font1BPNum 247 //255 //128
#define ROMFONTNum 0 //114
#define Font2BPNum 0
#define Font4BPNum 0//FONT4BPNUM
#define ROMFONTIndexStr Font1BPNum
#define Font2BPIndexStr Font1BPNum+ROMFONTNum
#define Font4BPIndexStr Font2BPIndexStr+Font2BPNum
//-----------------------------------------------------------------------//
//-------------------------- OSD1 Pattern Attribute -----------------------//
#define PT_1BP 0x10
#define PT_2BP 0x24
#define PT_3BP 0x38
#define PT_4BP 0x48
#define PT_5BP 0x5C
#define PT_6BP 0x6C
#define PT_7BP 0x7C
#define PT_8BP 0x0C
//-----------------------------------------------------------------------//
//------------------------------ Menu Attribute -------------------------//
#define MENU1 1
#define MENU2 2
#define Menu1StartX 25 //45
#define Menu1StartY 25 //6
#define Menu1Width 40
#define Menu1Height 20 //13
#define Menu2StartX 400
#define Menu2StartY 200
#define Menu2Width 40
#define Menu2Height 20
//-----------------------------------------------------------------------//
//-------------------------- OSD1 Memory Address ------------------------//
#if (FontWidth==OSD1FONTWIDTH12)
#define Font1BPDataStrAdr 0x0000
#define Font2BPDataStrAdr Font1BPDataStrAdr+Font1BPNum*((FontHeight*3+2)>>2)
#define Font4BPDataStrAdr Font2BPDataStrAdr+Font2BPNum*((FontHeight*3)>>1)
#define Menu1StrAdr Font4BPDataStrAdr+Font4BPNum*(FontHeight*3)
#define Menu1EndAdr Menu1StrAdr+(Menu1Width+4)*Menu1Height
#define Menu2StrAdr Menu1EndAdr+0x0004
#define Menu2EndAdr Menu2StrAdr+(Menu2Width+4)*Menu2Height
#elif (FontWidth==OSD1FONTWIDTH16)
#define Font1BPDataStrAdr 0x0000
#define Font2BPDataStrAdr Font1BPDataStrAdr+Font1BPNum*FontHeight
#define Font4BPDataStrAdr Font2BPDataStrAdr+Font2BPNum*FontHeight*2
#define Menu1StrAdr Font4BPDataStrAdr+Font4BPNum*FontHeight*4
#define Menu1EndAdr Menu1StrAdr+(Menu1Width+5)*Menu1Height
#define Menu2StrAdr Menu1EndAdr+0x0004
#define Menu2EndAdr Menu2StrAdr+(Menu2Width+5)*Menu2Height
#endif
//------------------------------------------------------------------------//
#endif //end for new version
#define OSD1_FG_COLOR_RED 0x02
#define OSD1_FG_COLOR_GREEN 0x09
//Color definition //old
#define FGND_COLOR_TRANSPERANT 0x00
#define FGND_COLOR_PINK 0x01
#define FGND_COLOR_BLACK 0x02
#define FGND_COLOR_PURPLE 0x03
#define FGND_COLOR_BLUE 0x04
#define FGND_COLOR_BROWN 0x05
#define FGND_COLOR_RED 0x06
#define FGND_COLOR_SAFFRON 0x07
#define FGND_COLOR_GREEN 0x08
#define FGND_COLOR_CYAN 0x09
#define FGND_COLOR_WHITE 0x0A
#define FGND_COLOR_CAMBRIDGE_BLUE 0x0B
#define FGND_COLOR_YELLOW 0x0C
#define FGND_COLOR_LILAC 0x0D
#define FGND_COLOR_GRAYEST 0x0E
#define FGND_COLOR_GRAYISH 0x0F
#define BGND_COLOR_TRANSPERANT 0x00
#define BGND_COLOR_BLACK 0x20
#define BGND_COLOR_BLUE 0x40
#define BGND_COLOR_RED 0x60
#define BGND_COLOR_GREEN 0x80
#define BGND_COLOR_WHITE 0xA0
#define BGND_COLOR_YELLOW 0xC0
#define BGND_COLOR_GRAYEST 0xE0
#define OSD_LENGTH 62//30
#define OSD_LINE_NUM 20
#if 0
#define OSD1_CTRL 0x00
#define CHAR_DLY_0 0x01
#define CHAR_DLY_1 0x02
#define CHAR_DLY_2 0x03
#define CHAR_FONT_SIZE 0x04
#define CHAR_RAM_BASE_A 0x05
#define CHAR_BS_CTRL 0x06
#define CHAR_BS_COLOR 0x07
#define CHAR_HEIGHT_CTRL 0x08
#define BLINK_CTRL 0x09
#define BW_WH_UPPER 0x0a
#define BW_W 0x0b
#define BW_H 0x0c
#define BD_ENLARGE 0x0d
#define OSD_LUT_RAM_DATA 0x0e
#define CHAR_RAM_CTRL 0x0F
#define WIN1_Y_START 0x11
#define WIN1_Y_END 0x12
#define WIN1_X_START 0x12
#define WIN1_X_END 0x13
#define WIN1_SHADOW_SIZE 0x14
#define WIN1_SE_CCNUM 0x15
#define FONTROM_IND_BASE 0x17
#define FONTROM_HEIGHT_CTR 0x18
#define ALPHA_BLD_CTRL 0x1c
#define CHAR_RAM_END_A 0x1e
#define IndexNumOffset 0//0x2a//0x1c//0x2F
#define IndexCharacterOffset 0//0x31//0x23//0x36
//#define LINE_LENGTH 27
//#define GAUGE_LENGTH 20
#define FONT_SIZE10W16H 0x40
#define FONT_SIZE12W12H 0x31
#define FONT_SIZE12W16H 0x41
#define FONT_SIZE14W16H 0x42
#define FONT_SIZE16W16H 0x43
#define FONT_SIZE10W18H 0x48
#define FONT_SIZE12W18H 0x49
#define FONT_SIZE14W18H 0x4a
#define FONT_SIZE16W18H 0x4b
#define WIDTH6 6 // add by Sherman 05'11'04
#define WIDTH8 8 // add by Sherman 05'11'04
#define WIDTH10 10
#define WIDTH12 12
#define WIDTH14 14
#define WIDTH16 16
#define HEIGHT12 12
#define HEIGHT16 16
#define HEIGHT18 18
#define HEIGHT20 20
#define HEIGHT24 24
#define CENTER 1
#define LEFT_BOTTOM 2
#define TOP 3
#define RIGHT_TOP 4
#define FONT_SIZE FONT_SIZE12W12H
#define FONT_WIDTH WIDTH12
#define FONT_HEIGHT HEIGHT12
#define TOTAL_FONT_NUM 255//250//128//max 405
#define OSD_LENGTH 62//30
#define OSD_LINE_NUM 20
#define FONT_DATA_START_ADDRESS 0x0000
#define MENU_RAM_START_ADDRESS ((TOTAL_FONT_NUM*FONT_HEIGHT)/64+1)*64
#define FONT_ROM_INDEX_BASE 0xFF//TOTAL_FONT_NUM
#define CHAR_MAIN_MENU_START ((MENU_RAM_START_ADDRESS>>5)&0xFF)
#define CHAR_RAM_END CHAR_MAIN_MENU_START+OSD_LINE_NUM*(OSD_LENGTH+1)
#define Clean_RAM_END 0x1800 //6k
//#define TXT_STAT 3
//#define NUM_STAT 25
//#define ITEM_STAT 18
//#define Menu_StartX 84
//#define Menu_StartY 40
//OSD number draw attabite
//#define DRAW_BLANK 0x10
//#define DRAW_ZERO 0x20
//#define Gauge_Full 0x0b
//#define Gauge_Empty 0x08
//Color definition
#define FGND_COLOR_TRANSPERANT 0x00
#define FGND_COLOR_PINK 0x01
#define FGND_COLOR_BLACK 0x02
#define FGND_COLOR_PURPLE 0x03
#define FGND_COLOR_BLUE 0x04
#define FGND_COLOR_BROWN 0x05
#define FGND_COLOR_RED 0x06
#define FGND_COLOR_SAFFRON 0x07
#define FGND_COLOR_GREEN 0x08
#define FGND_COLOR_CYAN 0x09
#define FGND_COLOR_WHITE 0x0A
#define FGND_COLOR_CAMBRIDGE_BLUE 0x0B
#define FGND_COLOR_YELLOW 0x0C
#define FGND_COLOR_LILAC 0x0D
#define FGND_COLOR_GRAYEST 0x0E
#define FGND_COLOR_GRAYISH 0x0F
#define BGND_COLOR_TRANSPERANT 0x00
#define BGND_COLOR_BLACK 0x20
#define BGND_COLOR_BLUE 0x40
#define BGND_COLOR_RED 0x60
#define BGND_COLOR_GREEN 0x80
#define BGND_COLOR_WHITE 0xA0
#define BGND_COLOR_YELLOW 0xC0
#define BGND_COLOR_GRAYEST 0xE0
//OSD_Position
#define OSD1_H_START_POS 0x00//0x02
#define OSD1_V_START_POS 0x00
//OSD Row Attribute
#define RGAP_BG 0x80
#define RGAP_0 0x00
#define RGAP_4 0x04
#define RGAP_8 0x08
#define RGAP_12 0x0C
#define Char_Height_Double 0x02
#define Char_Height_Single 0x00
#define Char_Width_Double 0x01
#define Char_Width_Single 0x00
#endif
#endif // __OSD1DEFINE_H__
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?