Exemplo n.º 1
0
/**
  * @brief: 触摸按键扫描
  * @param: tp:0,屏幕坐标;1,物理坐标(校准等特殊场合用)
  * @retval:当前触屏状态, 0,触屏无触摸;1,触屏有触摸
  */
u8 TP_Scan(u8 tp)
{			   
	if(PEN==0)//有按键按下
	{
		if(tp)TP_Read_XY2(&tp_dev.x,&tp_dev.y);//读取物理坐标
		else if(TP_Read_XY2(&tp_dev.x,&tp_dev.y))//读取屏幕坐标
		{
	 		tp_dev.x=tp_dev.xfac*tp_dev.x+tp_dev.xoff;//将结果转换为屏幕坐标
			tp_dev.y=tp_dev.yfac*tp_dev.y+tp_dev.yoff;  
	 	} 
		if((tp_dev.sta&TP_PRES_DOWN)==0)//之前没有被按下
		{		 
			tp_dev.sta=TP_PRES_DOWN|TP_CATH_PRES;//按键按下  
			tp_dev.x0=tp_dev.x;//记录第一次按下时的坐标
			tp_dev.y0=tp_dev.y;  	   			 
		}			   
	}else
	{
		if(tp_dev.sta&TP_PRES_DOWN)//之前是被按下的
		{
			tp_dev.sta&=~(1<<7);//标记按键松开	
		}else//之前就没有被按下
		{
			tp_dev.x0=0;
			tp_dev.y0=0;
			tp_dev.x=0xffff;
			tp_dev.y=0xffff;
		}	    
	}
	return tp_dev.sta&TP_PRES_DOWN;//返回当前的触屏状态
}	  
Exemplo n.º 2
0
u8 TP_Scan(u8 tp)
{
	static unsigned short x,y;
	static struct file *fd = NULL;
	static int flag = 0;
	gui_msg_l0 touch_msg;
	
	if(fd == NULL)
		fd = open("/dev/queuel0.d",__FS_OPEN_EXISTING | __FS_WRITE);
	
	if(flag)
	{
		touch_msg.x_pos = 25;
		touch_msg.y_pos = 25;
		touch_msg.event_type = onfocus;
		write(fd,(const char *)&touch_msg,sizeof(touch_msg));
	}else
	{
		touch_msg.x_pos = 25;
		touch_msg.y_pos = 25;
		touch_msg.event_type = losefocus;
		write(fd,(const char *)&touch_msg,sizeof(touch_msg));
	}
	flag ^= 1;
	
	if(PEN==0)//有按键按下
	{
		TP_Read_XY2(&x,&y);//读取物理坐标
	}
	return 0;
}
Exemplo n.º 3
0
int  GUI_TOUCH_X_MeasureY(void) 
{
  u16  x,y;
  TP_Read_XY2(&x,&y);
	//TP_Scan(0);
  return y;

}
Exemplo n.º 4
0
unsigned char Convert_Pos(void)
{
	unsigned char l=0;
	if(TP_Read_XY2(&tp_pixad.x,&tp_pixad.y)==1)
	{
		l=1;
		tp_pixlcd.x=tp_pixad.x>chx?((unsigned long)tp_pixad.x-chx)*1000/vx:(chx-(unsigned long)tp_pixad.x)*1000/vx;
		tp_pixlcd.y=tp_pixad.y>chy?((unsigned long)tp_pixad.y-chy)*1000/vy:(chy-(unsigned long)tp_pixad.y)*1000/vy;
	}
	return l;
}
Exemplo n.º 5
0
void Get_Click(u16 *x,u16 *y)
{
	TP_Read_XY2(x,y); 
	//TP_Draw_Big_Point(*x=*x/Touch_X,*y=*y/Touch_Y,Red);
	*x=*x/14.03-14.85;*y=*y/10.81-17.52;
}