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 + -
显示快捷键?