|
发表于 2009-4-1 09:17:51
|
显示全部楼层
【68楼】 superyongzhe 最后的骑士
你的EG_TEST函数里为什么又要作一次初始化呢?
void EG_DriverInit(void)
{
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
GPB1_TO_OUT();
GPB1_TO_1();
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
EG_PortInit();
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
EG_PWRENInit(TRUE) ;
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
// TFT LCD panel, 16bpp TFT, ENVID=off
rLCDCON1 = (EG_CLKVAL<<8) | (0<<7) | (3<<5) | (12<<1) | 0;
rLCDCON2 = (EG_VBPD<<24) | (EG_LINEVA<<14) | (EG_VFPD<<6) | (EG_VSPW);
rLCDCON3 = (EG_HBPD<<19) | (EG_HOZVAL<<8) | (EG_HFPD);
rLCDCON4 = (13<<8) | (EG_HSPW);
rLCDCON5 = (1<<11) | (1<<10) | (1<<9) | (1<<8) | (0<<7) | (0<<6)
| (1<<3) |(EG_BSWP<<1) | (EG_HWSWP);
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
rLCDSADDR1 = (((uint32)sta_VRAM>>22)<<21) | EG_M5D((uint32)sta_VRAM>>1);
rLCDSADDR2 = EG_M5D( ((uint32)sta_VRAM + (EG_XMAX*EG_YMAX*2))>>1 );
rLCDSADDR3 = (((EG_XMAX-EG_XMAX)/1)<<11) | (EG_XMAX/1);
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
rLCDINTMSK |= (3); // MASK LCD Sub Interrupt
rLPCSEL &= (~7) ; // Disable LPC3480
rTPAL = 0 ; // Disable Temp Palette
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
EG_OutSwitch(TRUE);
EG_SetDefaultScreen();
}
这个和GEC2410上的初始化参数有些不同,开始的LCD的初始化我就用原来的,我也想着应该是初始化的参数问题,确实有些不同,所以我就想把GEC2410的初始化放到这里来,可是调用时,就报错有些宏未定义,所以我就把头文件加进去却报更奇怪的错误,由于昨天比较晚了就没有想是什么原因了,在上班不给用ADS,所以也没有得搞.现我把两个初始化的贴出来,帮忙看下,画点函数只是把相素放到缓冲区里,应该是一样的.
//*******************************************************************************************************
你的初始化部分
void EG_DriverInit(void)
{
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
GPB1_TO_OUT();
GPB1_TO_1();
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
EG_PortInit();
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
EG_PWRENInit(TRUE) ;
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
// TFT LCD panel, 16bpp TFT, ENVID=off
rLCDCON1 = (EG_CLKVAL<<8) | (0<<7) | (3<<5) | (12<<1) | 0;
rLCDCON2 = (EG_VBPD<<24) | (EG_LINEVA<<14) | (EG_VFPD<<6) | (EG_VSPW);
rLCDCON3 = (EG_HBPD<<19) | (EG_HOZVAL<<8) | (EG_HFPD);
rLCDCON4 = (13<<8) | (EG_HSPW);
rLCDCON5 = (1<<11) | (1<<10) | (1<<9) | (1<<8) | (0<<7) | (0<<6)
| (1<<3) |(EG_BSWP<<1) | (EG_HWSWP);
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
rLCDSADDR1 = (((uint32)sta_VRAM>>22)<<21) | EG_M5D((uint32)sta_VRAM>>1);
rLCDSADDR2 = EG_M5D( ((uint32)sta_VRAM + (EG_XMAX*EG_YMAX*2))>>1 );
rLCDSADDR3 = (((EG_XMAX-EG_XMAX)/1)<<11) | (EG_XMAX/1);
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
rLCDINTMSK |= (3); // MASK LCD Sub Interrupt
rLPCSEL &= (~7) ; // Disable LPC3480
rTPAL = 0 ; // Disable Temp Palette
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
EG_OutSwitch(TRUE);
EG_SetDefaultScreen();
}
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
#if EG_RESO==1
#define EG_DIV 8
#elif EG_RESO==2
#define EG_DIV 4
#elif EG_RESO==4
#define EG_DIV 2
#else
#define EG_DIV 1
#endif
//******************************************************************************************************
#define EG_BSWP (0) // Byte swap control
#define EG_HWSWP (1) // Half word swap control
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
#define EG_M5D(n) ((n) & 0x1fffff)
// get lower 21bits
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
#define EG_CLKVAL (7)
// FCLK = 200MHz, HCLK = 100MHz
// VCLK = HCLK / [(CLKVAL+1) * 2] (CLKVAL >= 0)
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
#define EG_HOZVAL (EG_XMAX - 1)
#define EG_LINEVA (EG_YMAX - 1)
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
#define EG_VBPD (14) //垂直同步信号的后肩
#define EG_VFPD (11) //垂直同步信号的前肩
#define EG_VSPW (2) //垂直同步信号的脉宽
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
#define EG_HBPD (37) //水平同步信号的后肩
#define EG_HFPD (19) //水平同步信号的前肩
#define EG_HSPW (29) //水平同步信号的脉宽
//******************************************************************************************************
以下是GCE1410带的LCD初始化程序
//*******************************************************************************************************
/**************************************************************
320×240 16Bpp TFT LCD功能模块初始化
**************************************************************/
static void Lcd_Init(void)
{
#ifdef LTV350QV_POE //先设置为16PBB模式.//这个已定义
rLCDCON1=(CLKVAL_TFT_240320<<8)|(MVAL_USED<<7)|(3<<5)|(12<<1)|0;
// TFT LCD panel,16bpp TFT,ENVID=off
rLCDCON2=(LTV350QV_VBPD<<24)|(LINEVAL_TFT_320240<<14)|(LTV350QV_VFPD<<6)|(LTV350QV_VSPW);
rLCDCON3=(LTV350QV_HBPD<<19)|(HOZVAL_TFT_320240<<8)|(LTV350QV_HFPD);
rLCDCON4=(MVAL<<8)|(LTV350QV_HSPW);
rLCDCON5=(1<<11)|(1<<10)|(1<<9)|(1<<8)|(0<<6)|(BSWP<<1)|(HWSWP); //FRM5:6:5,VCLK,HSYNC and VSYNC are inverted
rLCDSADDR1=(((U32)LCD_BUFER>>22)<<21)|M5D((U32)LCD_BUFER>>1);
rLCDSADDR2=M5D( ((U32)LCD_BUFER+(SCR_XSIZE_TFT_320240*LCD_YSIZE_TFT_320240*2))>>1 );
rLCDSADDR3=(((SCR_XSIZE_TFT_320240-LCD_XSIZE_TFT_320240)/1)<<11)|(LCD_XSIZE_TFT_320240/1);
#else
rLCDCON1=(CLKVAL_TFT_240320<<8)|(MVAL_USED<<7)|(3<<5)|(12<<1)|0;
// TFT LCD panel,12bpp TFT,ENVID=off
rLCDCON2=(VBPD_240320<<24)|(LINEVAL_TFT_240320<<14)|(VFPD_240320<<6)|(VSPW_240320);
rLCDCON3=(HBPD_240320<<19)|(HOZVAL_TFT_240320<<8)|(HFPD_240320);
rLCDCON4=(MVAL<<8)|(HSPW_240320);
rLCDCON5=(1<<11)|(0<<9)|(0<<8)|(0<<6)|(BSWP<<1)|(HWSWP); //FRM5:6:5,HSYNC and VSYNC are inverted----LQ035Q7DB02
rLCDSADDR1=(((U32)LCD_BUFER>>22)<<21)|M5D((U32)LCD_BUFER>>1);
rLCDSADDR2=M5D( ((U32)LCD_BUFER+(SCR_XSIZE_TFT_240320*LCD_YSIZE_TFT_240320*2))>>1 );
rLCDSADDR3=(((SCR_XSIZE_TFT_240320-LCD_XSIZE_TFT_240320)/1)<<11)|(LCD_XSIZE_TFT_240320/1);
#endif
rLCDINTMSK|=(3); // MASK LCD Sub Interrupt
rLPCSEL&=(~7); // Disable LPC3600
rTPAL=0; // Disable Temp Palette
}
/**************************************************************
The initial and control for 320×240 16Bpp TFT LCD----TX06D18
**************************************************************/
#define MVAL (13)
#define MVAL_USED (0) //0=each frame 1=rate by MVAL
#define INVVDEN (1) //0=normal 1=inverted
#define BSWP (0) //Byte swap control
#define HWSWP (1) //Half word swap control
#define M5D(n) ((n) & 0x1fffff) // To get lower 21bits
//TFT 240320
#define LCD_XSIZE_TFT_240320 (240)
#define LCD_YSIZE_TFT_240320 (320)
//TFT 320240
#define LCD_XSIZE_TFT_320240 (320)
#define LCD_YSIZE_TFT_320240 (240)
//TFT 240320
#define SCR_XSIZE_TFT_240320 (640)
#define SCR_YSIZE_TFT_240320 (480)
//#define SCR_XSIZE_TFT_240320 (240)
//#define SCR_YSIZE_TFT_240320 (320)
//TFT 320240
#define SCR_XSIZE_TFT_320240 (320)
#define SCR_YSIZE_TFT_320240 (240)
//TFT 320240
//TFT240320
#define HOZVAL_TFT_240320 (LCD_XSIZE_TFT_240320-1)
#define LINEVAL_TFT_240320 (LCD_YSIZE_TFT_240320-1)
//TFT320240
#define HOZVAL_TFT_320240 (LCD_XSIZE_TFT_320240-1)
#define LINEVAL_TFT_320240 (LCD_YSIZE_TFT_320240-1)
//Timing parameter for LCD
#define VBPD_240320 (2) //垂直同步信号的后肩
#define VFPD_240320 (2) //垂直同步信号的前肩
#define VSPW_240320 (4) //垂直同步信号的脉宽
#define HBPD_240320 (8) //水平同步信号的后肩
#define HFPD_240320 (8) //水平同步信号的前肩
#define HSPW_240320 (6) //水平同步信号的脉宽
#define CLKVAL_TFT_240320 (5)
//FCLK=180MHz,HCLK=90MHz,VCLK=6.5MHz
//for LTV350QV TFT 320240
#define CLKVAL_TFT_320240 (6)
另,我还想问下那些图标也是用画出来的吗,而不是取模的?
谢谢!说了这么多,还请帮忙看看. |
|