📄 color_lcd_test.c
字号:
/*********************************************************************************************
* File: lcdapp.c
* Author: Embest
* Desc: LCD control and display functions
* History:
* Y.J.Guo, Programming modify, April 12, 2005
*********************************************************************************************/
/*------------------------------------------------------------------------------------------*/
/* include files */
/*------------------------------------------------------------------------------------------*/
#include <string.h>
#include "2410lib.h"
#include "lcd_init.h"
/*------------------------------------------------------------------------------------------*/
/* extern variables */
/*------------------------------------------------------------------------------------------*/
#ifdef BOARDTEST_EXH
#undef BOARDTEST
#endif
unsigned save_rGPCUP,save_rGPCDAT,save_rGPCCON;
unsigned save_rGPDUP,save_rGPDDAT,save_rGPDCON;
void (*PutPixel)(UINT32T,UINT32T,UINT32T);
void (*BitmapView)(UINT8T *pBuffer);
int i,j;
UINT32T (*frameBuffer8Bit)[SCR_XSIZE_CSTN/4];
void _PutCstn8Bit(UINT32T x,UINT32T y,UINT32T c);
/*------------------------------------------------------------------------------------------*/
/* function declare */
/*------------------------------------------------------------------------------------------*/
void lcd_clr(void);
//Define PutPixel Function
/*********************************************************************************************
* name: lcd_init_app
* func: lcd application initialization code
* para: none
* ret: none
* modify:
* comment:
*********************************************************************************************/
void lcd_init_app()
{
save_rGPCCON=rGPCCON;
save_rGPCDAT=rGPCDAT;
save_rGPCUP=rGPCUP;
save_rGPDCON=rGPDCON;
save_rGPDDAT=rGPDDAT;
save_rGPDUP=rGPDUP;
rGPCUP=0xffffffff; // Disable Pull-up register
rGPCCON=0xaaaaa9aa; // Initialize VD[7:0],LCDVF[2:0],VM,VFRAME,VLINE,VCLK,LEND
rGPDUP=0xffffffff; // Disable Pull-up register
rGPDCON=0xaaaaaaaa; // Initialize VD[23:8]
//Lcd_Init(MODE_CSTN_8BIT);
frameBuffer8Bit=(UINT32T (*)[SCR_XSIZE_CSTN/4])LCDFRAMEBUFFER;
rLCDCON1=(CLKVAL_CSTN<<8)|(MVAL_USED<<7)|(2<<5)|(3<<1)|0;
rLCDCON2=(0<<24)|(LINEVAL_CSTN<<14)|(0<<6)|(0<<0);
rLCDCON3=(WDLY_CSTN<<19)|(HOZVAL_CSTN<<8)|(LINEBLANK_CSTN<<0);
rLCDCON4=(MVAL<<8)|(WLH_CSTN<<0);
rLCDCON5=0;
rLCDSADDR1=(((UINT32T)frameBuffer8Bit>>22)<<21 )|M5D((UINT32T)frameBuffer8Bit>>1);
rLCDSADDR2=M5D( ((UINT32T)frameBuffer8Bit+(SCR_XSIZE_CSTN*LCD_YSIZE_CSTN/1))>>1 );
rLCDSADDR3=(((SCR_XSIZE_CSTN-LCD_XSIZE_CSTN)/2)<<11)|(LCD_XSIZE_CSTN/2);
rDITHMODE=0x0;
rREDLUT =0xfdb96420;
rGREENLUT=0xfdb96420;
rBLUELUT =0xfb40;
//Glib_Init(MODE_CSTN_8BIT);
PutPixel=_PutCstn8Bit;
//BitmapView=BitmapViewCstn8Bit;
//Glib_ClearScr(GREEN-20, MODE_CSTN_8BIT);
for(j=0;j<SCR_YSIZE_CSTN;j++)
for(i=0;i<SCR_XSIZE_CSTN;i++)
PutPixel(i,j,GREEN-20);
//Lcd_PowerEnable(0, 1);
//GPG4 is setted as LCD_PWREN
rGPGUP=rGPGUP&(~(1<<4))|(1<<4); // Pull-up disable
rGPGCON=rGPGCON&(~(3<<8))|(3<<8); // GPG4=LCD_PWREN
//Enable LCD POWER ENABLE Function
rLCDCON5=rLCDCON5&(~(1<<3))|(1<<3); // PWREN
rLCDCON5=rLCDCON5&(~(1<<5))|(0<<5); // INVPWREN
//Lcd_EnvidOnOff(1);
rLCDCON1|=1;
uart_printf("Init LCD Success!!!!\n");
}
void _PutCstn8Bit(UINT32T x,UINT32T y,UINT32T c)
{
if(x<SCR_XSIZE_CSTN&& y<SCR_YSIZE_CSTN)
frameBuffer8Bit[(y)][(x)/4]=( frameBuffer8Bit[(y)][x/4]
& ~(0xff000000>>((x)%4)*8) ) | ( (c&0x000000ff)<<((4-1-((x)%4))*8) );
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -