Ejemplo n.º 1
0
u16 GUI_GetPoint(u16 xpos,u16 ypos)
{
  	LCD_WriteReg(0x20, ypos);
  	LCD_WriteReg(0x21, 319-xpos);
  	if(lcdid==0x4531)return (LCD_ReadRAM());
  	else return (LCD_BGR2RGB(LCD_ReadRAM()));
}
Ejemplo n.º 2
0
int ili9320_read_pixel(int x, int y)
{
    int value;
    write_reg(0x0020, x);
    write_reg(0x0021, y);
    WMLCDCOM(0x0022);
    value = ILI9320_DATA_ADDRESS;
    WMLCDCOM(0x0022);
    value = ILI9320_DATA_ADDRESS;
    return LCD_BGR2RGB(value);
}
Ejemplo n.º 3
0
int ili9320_read_pixel(int x, int y)
{
    int value;
    write_reg(0x0020, x);
    write_reg(0x0021, y);
    WR_CMD(0x0022);
    value = RD_DATA();
    WR_CMD(0x0022);
    value = RD_DATA();
    return LCD_BGR2RGB(value);
}
//读取个某点的颜色值	 
//x:0~239
//y:0~319
//返回值:此点的颜色
u16 LCD_ReadPoint(u16 x,u16 y)
{
	u16 t;	
	if(x>=LCD_W||y>=LCD_H)return 0;//超过了范围,直接返回		   
	LCD_SetCursor(x,y);
	LCD_WR_REG(R34);       //选择GRAM地址 
	GPIOB->CRL=0X88888888; //PB0-7  上拉输入
	GPIOB->CRH=0X88888888; //PB8-15 上拉输入
	GPIOB->ODR=0XFFFF;     //全部输出高
#if LCD_FAST_IO==1 //快速IO
	LCD_RS_SET;
	LCD_CS_CLR;
	//读取数据(读GRAM时,需要读2次)
	LCD_RD_CLR;					   
	LCD_RD_SET;
	delay_us(2);//FOR 9320,延时2us					   
	//dummy READ
	LCD_RD_CLR;					   
	delay_us(2);//FOR 8989,延时2us					   
	LCD_RD_SET;
	t=DATAIN;  
	LCD_CS_SET;
#else
	LCD_RS=1;
	LCD_CS=0;
	//读取数据(读GRAM时,需要读2次)
	LCD_RD=0;					   
 	LCD_RD=1;
 	//dummy READ
	LCD_RD=0;					   
 	LCD_RD=1;
	t=DATAIN;  
	LCD_CS=1;  
#endif 
	GPIOB->CRL=0X33333333; //PB0-7  上拉输出
	GPIOB->CRH=0X33333333; //PB8-15 上拉输出
	GPIOB->ODR=0XFFFF;    //全部输出高  
	if(DeviceCode==0X4535||DeviceCode==0X4531||DeviceCode==0X8989||DeviceCode==0XB505)return t;//这几种IC直接返回颜色值
	else return LCD_BGR2RGB(t);
}