📄 display.h
字号:
void Test_Virtual_Screen(void);
void Test_DisplayFramebufferCpuIf_QVGA(void);
void Test_DisplayFramebufferRgbIf_QVGA1(void);
void Test_DisplayFramebufferRgbIf_QVGA2(void);
void Test_DisplayFramebufferCpuIf_QVGA1(void);
void Prepare_Blending_Pallet01(void);
void Prepare_ColorKey_Pallet1(void);
void Setup_RgbIf( void);
void Test_Lcd_QVGA(void);
void Basic_Display_Setting( int32 win_num,int32 buf_num, int32 bpp, uint32 width, uint32 height);
void Display_Start(int8 win_num);
void Display_End(int8 win_num);
void Prepare_Image(int8 win_num, int8 bpp);
void Prepare_Pallet(int8 win_num, int8 bpp);
void SetLcdPort(void);
void delayLoop(uint32 count);
void LCDC_Common_Init(void);
void LcdEnvidOnOff(uint8 onoff);
void LcdWindowOnOff(uint8 num, uint8 onoff);
void _PutPixel1Bit(uint32 x, uint32 y, uint32 c);
void _PutPixel2Bit(uint32 x, uint32 y, uint32 c);
void _PutPixel4Bit(uint32 x, uint32 y, uint32 c);
void _PutPixel8Bit(uint32 x, uint32 y, uint32 c);
void _PutPixel16Bit(uint32 x, uint32 y, uint32 c);
void _PutPixel32Bit(uint32 x, uint32 y, uint32 c);
void LCD_Line(int32 x1, int32 y1, int32 x2, int32 y2, int32 color);
void LCD_Rectangle(int32 x1,int32 y1,int32 x2,int32 y2,int32 color);
void LCD_FilledRectangle(int32 x1,int32 y1,int32 x2,int32 y2,int32 color);
void LCD_ClearScr(uint32 c);
void lputs(uint32 x, uint32 y, uint32 c, char *str);
void lprintf(uint32 x, uint32 y, uint32 c, const char *fmt,...);
void __irq Display_ISR0(void);
void __irq Display_ISR1(void);
void Init_LDI(void);
void InitLDI_LTS222(void);
void InitLDI_LTV350(void);
void Write_LDI_LTS222(int address, int data);
void Write_LDI_LTV350(int address, int data);
//=================================================
void Basic_Display_CPUIF(void);
void Init_LDI_CPUIF(void);
void Display_Start_CPUIF(int8 win_num);
void InitLDI_LTS222_CPUIF(void);
void LCDC_Common_Init_CPUIF(void);
//void LCDC_Common_Init_CPUIF(int cs);
void Test_ColorKey_CPUIF(void);
void Test_Blending_Win01_CPUIF(void);
void PlaneBlendingTest_CPUIF(void);
void PixelBlendingTest_CPUIF( void);
void Test_ColorMap_CPUIF(void);
void Test_EachWindow_EachBPP_CPUIF(void);
void Test_DisplayFramebufferCpuIf_QVGA_GOM(void);
void Test_DisplayFramebufferCpuIf_OUTPUT_FORMAT(void);
void LCDC_Common_Init_CPUIF_OUTPUT_FORMAT(void);
void Basic_Display_Setting_CPUIF_OUTPUT_FORMAT( int32 win_num,int32 buf_num, int32 bpp, uint32 width, uint32 height);
void Test_DisplayFramebufferCpuIf_Bufferchange(void);
//=================================================
void InitLDI_LTS222_SERIAL(void);
void Basic_Display_Serial(void);
void Test_DisplayFramebufferRgbIf_QVGA1_Serial(void);
void Basic_Display_Setting_Serial( int32 win_num,int32 buf_num, int32 bpp, uint32 width, uint32 height);
void LCDC_Common_Init_Serial(void);
void Test_ColorKey_Serial(void);
void Test_Blending_Win01_Serial(void);
void PlaneBlendingTest_Serial(void);
void PixelBlendingTest_Serial( void);
void Test_EachWindow_EachBPP_Serial(void);
void Test_DisplayFramebufferSerial_Bufferchange(void);
void Test_ColorMap_Serial(void);
void Test_Virtual_Screen_Serial(void);
//=================================================
void Display_StnIf(void);
void Test_Lcd_Stn_1Bit(void);
void Test_Lcd_Stn_2Bit(void);
void Test_Lcd_Stn_4Bit(void);
void Test_Lcd_Cstn_8Bit(void);
void Test_Lcd_Cstn_8Bit_On(void);
void Test_Lcd_Cstn_12Bit(void);
void Test_Lcd_Cstn_16Bit(void);
void Lcd_Init(int type);
void Glib_Init(int type);
void _PutStn1Bit(U32 x,U32 y,U32 c);
void _PutStn2Bit(U32 x,U32 y,U32 c);
void _PutStn4Bit(U32 x,U32 y,U32 c);
void _PutCstn8Bit(U32 x,U32 y,U32 c);
void _PutCstn12Bit(U32 x,U32 y,U32 c);
void _PutCstn16Bit(U32 x,U32 y,U32 c);
void Lcd_EnvidOnOff(int onoff);
void Glib_ClearScr(U32 c, int type);
void Glib_FilledRectangle(int x1,int y1,int x2,int y2,int color);
void Glib_Line(int x1,int y1,int x2,int y2,int color);
void Glib_Rectangle(int x1,int y1,int x2,int y2,int color);
void MoveViewPort(int type);
void Lcd_MoveViewPort(int vx,int vy,int type);
void Lcd_CstnOnOff(int onoff);
void DISP_CMD_OUT(U16 CMD);
void Basic_Display_Setting_CPUIF( int32 win_num,int32 buf_num, int32 bpp, uint32 width, uint32 height);
#define LCDFRAMEBUFFER 0x31800000 //_NONCACHE_STARTADDRESS
#define MVAL (13)
#define MVAL_USED (0)
#define M5D(n) ((n) & 0x1fffff) // To get lower 21bits
#define CLKVAL_STN_MONO (20)
// 30hz @100Mhz(HCLK),WLH=16hclk,WDLY=16hclk,LINEBLANK=1*8hclk,VD=4
#define CLKVAL_STN_GRAY (10)
// 60hz @100Mhz,WLH=16hclk,WDLY=16hclk,LINEBLANK=13*8hclk,VD=4
#define CLKVAL_CSTN (9)
//#define CLKVAL_CSTN (35)
//STN
#define WLH_STN (0)
#define WDLY_STN (0)
#define LINEBLANK_MONO (1 &0xff) // MONO timing parameter for CPT CLS-040S-C3M(CHUNGHWA)
#define LINEBLANK_GRAY (13 &0xff)// GRAY timing parameter for CPT CLS-040S-C3M(CHUNGHWA)
//CSTN timing parameter for LCBHBT161M(NANYA)
#define WLH_CSTN (0)
#define WDLY_CSTN (0)
#define LINEBLANK_CSTN (16 &0xff)
//STN
#define HOZVAL_STN (LCD_XSIZE_STN/4-1) // Valid VD data line number is 4.
#define LINEVAL_STN (LCD_YSIZE_STN-1)
//Color STN
#define HOZVAL_CSTN (LCD_XSIZE_CSTN*3/8-1) // Valid VD data line number is 8.
#define LINEVAL_CSTN (LCD_YSIZE_CSTN-1)
//STN
#define LCD_XSIZE_STN (320)
#define LCD_YSIZE_STN (240)
//Color STN
#define LCD_XSIZE_CSTN (320)
#define LCD_YSIZE_CSTN (240)
//TFT 240320
#define LCD_XSIZE_TFT_240320 (240)
#define LCD_YSIZE_TFT_240320 (320)
//TFT 640480
#define LCD_XSIZE_TFT_640480 (640)
#define LCD_YSIZE_TFT_640480 (480)
//TFT 800600
#define LCD_XSIZE_TFT_800600 (800)
#define LCD_YSIZE_TFT_800600 (600)
//STN
#define SCR_XSIZE_STN (LCD_XSIZE_STN*2) //for virtual screen
#define SCR_YSIZE_STN (LCD_YSIZE_STN*2)
//Color STN
/*
#define SCR_XSIZE_CSTN (LCD_XSIZE_CSTN*2) //for virtual screen
#define SCR_YSIZE_CSTN (LCD_YSIZE_CSTN*2)
*/
#define SCR_XSIZE_CSTN (LCD_XSIZE_CSTN) //No virtual screen
#define SCR_YSIZE_CSTN (LCD_YSIZE_CSTN)
//TFT 240320
#define SCR_XSIZE_TFT_240320 (LCD_XSIZE_TFT_240320*2)
#define SCR_YSIZE_TFT_240320 (LCD_YSIZE_TFT_240320*2)
//TFT 640480
#define SCR_XSIZE_TFT_640480 (LCD_XSIZE_TFT_640480*2)
#define SCR_YSIZE_TFT_640480 (LCD_YSIZE_TFT_640480*2)
//TFT 800600
#define SCR_XSIZE_TFT_800600 (LCD_XSIZE_TFT_800600*2)
#define SCR_YSIZE_TFT_800600 (LCD_YSIZE_TFT_800600*2)
//Selecting LCD type
//STN LCD Panel(320*240)
#define MODE_STN_1BIT (0x1001)
#define MODE_STN_2BIT (0x1002)
#define MODE_STN_4BIT (0x1004)
//Color STN LCD Panel(320*240)
#define MODE_CSTN_8BIT (0x2001)
#define MODE_CSTN_12BIT (0x2002)
#define MODE_CSTN_12BIT_UP (0x2004)
#define MODE_CSTN_16BIT (0x2008) // for 2442A
//TFT LCD Panel(240*320)
#define MODE_TFT_1BIT_240320 (0x4101)
#define MODE_TFT_8BIT_240320 (0x4102)
#define MODE_TFT_16BIT_240320 (0x4104)
#define MODE_TFT_24BIT_240320 (0x4108)
//TFT LCD Panel(640*480)
#define MODE_TFT_1BIT_640480 (0x4201)
#define MODE_TFT_8BIT_640480 (0x4202)
#define MODE_TFT_16BIT_640480 (0x4204)
#define MODE_TFT_24BIT_640480 (0x4208)
//TFT LCD Panel(800*600)
#define MODE_TFT_1BIT_800600 (0x4401)
#define MODE_TFT_8BIT_800600 (0x4402)
#define MODE_TFT_16BIT_800600 (0x4404)
//Mono
extern U32 (*frameBuffer1Bit)[SCR_XSIZE_STN/32];
//Gray
extern U32 (*frameBuffer2Bit)[SCR_XSIZE_STN/16];
extern U32 (*frameBuffer4Bit)[SCR_XSIZE_STN/8];
//Color STN
extern U32 (*frameBuffer8Bit)[SCR_XSIZE_CSTN/4];
extern U32 (*frameBuffer12Bit)[SCR_XSIZE_CSTN*3/8]; // The least common multiple (between 12 and 32) is 96
extern U32 (*frameBuffer16Bit)[SCR_XSIZE_CSTN/2]; // for 2442A
//TFT 240320
extern U32 (*frameBuffer8BitTft240320)[SCR_XSIZE_TFT_240320/4];
extern U32 (*frameBuffer16BitTft240320)[SCR_XSIZE_TFT_240320/2];
extern U32 (*frameBuffer24BitTft240320)[SCR_XSIZE_TFT_240320];
//TFT 640480
extern U32 (*frameBuffer1BitTft640480)[SCR_XSIZE_TFT_640480/32];
extern U32 (*frameBuffer8BitTft640480)[SCR_XSIZE_TFT_640480/4];
extern U32 (*frameBuffer16BitTft640480)[SCR_XSIZE_TFT_640480/2];
extern U32 (*frameBuffer24BitTft640480)[SCR_XSIZE_TFT_640480]; // Unpacked 24bit
//TFT 800600
extern U32 (*frameBuffer1BitTft800600)[SCR_XSIZE_TFT_800600/32];
extern U32 (*frameBuffer8BitTft800600)[SCR_XSIZE_TFT_800600/4];
extern U32 (*frameBuffer16BitTft800600)[SCR_XSIZE_TFT_800600/2];
//=================================================
// extern variable
extern int8 lcd_type;
extern uint32 lcd_bpp;
extern uint16 lcd_horizon_value,lcd_line_value;
extern uint8 lcd_vbpd,lcd_vfpd,lcd_vspw,lcd_hbpd,lcd_hfpd,lcd_hspw;
extern uint8 lcd_cs_setup,lcd_wr_setup,lcd_wr_act,lcd_wr_hold;
extern uint8 lcd_frame_rate;
extern uint8 lcd_burst_mode;
extern uint16 screen_width,screen_height;
extern uint32 *lcd_framebuffer;
extern void (*PutPixel)(uint32 x,uint32 y,uint32 c);
extern void *lcd_bpp_mode[];
extern uint8 lcd_bit_order[];
extern uint8 lcd_burst_in_byte[];
extern uint32 lcd_frame_buffer[][2];
extern vuint32 *WINCONx_Reg_Addr[];
extern vuint32 *VIDOSDxA_Reg_Addr[];
extern vuint32 *VIDOSDxB_Reg_Addr[];
extern vuint32 *VIDOSDxC_Reg_Addr[];
extern vuint32 *VIDWxADD0_Reg_Addr[][2];
extern vuint32 *VIDWxADD1_Reg_Addr[][2];
extern vuint32 *VIDWxADD2_Reg_Addr[][2];
extern vuint32 *WxKEYCON0_Reg_Addr[];
extern vuint32 *WxKEYCON1_Reg_Addr[];
extern vuint32 *WINxMAP_Reg_Addr[];
extern vuint32 *WINxPalletBase[];
#ifdef __cplusplus
}
#endif
#endif //#ifndef __DISPLAY_H__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -