?? main.c
字號:
#include "../inc/lib.h"
#include <stdio.h>
#include "inc/tchScr.h"
#include "uhal/uhal.h"
#pragma import(__use_no_semihosting_swi) // ensure no functions that use semihosting
U32 TchScr_GetOSXY(int *x, int *y)
{//獲得觸摸點坐標(biāo)并返回觸摸動作
static U32 mode=0;
static int oldx,oldy;
int i,j;
for(;;){
if((mode!=TCHSCR_ACTION_DOWN) && (mode!=TCHSCR_ACTION_MOVE)){
if(!(rADCDAT0&(1<<15))){//有觸摸動作
TchScr_GetScrXY(x, y);//得到觸摸點坐標(biāo)
oldx=*x;
oldy=*y;
for(i=0;i<40;i++){
if(rADCDAT0&(1<<15)){//抬起
break;
}
hudelay(20);
}
if(i<40){ //在規(guī)定的雙擊時間之內(nèi)抬起,檢測是不是及時按下
for(i=0;i<60;i++){
if(!(rADCDAT0&(1<<15))){
SUBSRCPND|=(1<<9);
if (i<10) {i=60;break;}//如果單擊后很短時間內(nèi)按下,不視為雙擊
mode=TCHSCR_ACTION_DBCLICK;
for(j=0;j<40;j++) hudelay(50);//檢測到雙擊后延時,防止拖尾
break;
}
hudelay(20);
}
if(i==60) //沒有在規(guī)定的時間內(nèi)按下,視為單擊
mode=TCHSCR_ACTION_CLICK;
}
else{ //沒有在規(guī)定的時間內(nèi)抬起,視為按下
mode=TCHSCR_ACTION_DOWN;
}
break;
}
}
else{
TchScr_GetScrXY(x, y);//得到觸摸點坐標(biāo)
if(rADCDAT0&(1<<15)){ //抬起
mode=TCHSCR_ACTION_UP;
break;
}
else{
if(ABS(oldx-*x)>25 ||ABS(oldy-*y)>25){//有移動動作
mode=TCHSCR_ACTION_MOVE;
break;
}
}
}
hudelay(10);
}
oldx=*x;
oldy=*y;
return mode;
}
void TchScr_Test()
{
U32 mode;
int x,y;
Uart_Printf(0,"\nplease touch the screen\n");
for(;;){
mode=TchScr_GetOSXY(&x, &y);
switch(mode){
case TCHSCR_ACTION_CLICK:
Uart_Printf(0,"Action=click:x=%d,\ty=%d\n",x,y);
break;
case TCHSCR_ACTION_DBCLICK:
Uart_Printf(0,"Action=double click:x=%d,\ty=%d\n",x,y);
break;
case TCHSCR_ACTION_DOWN:
Uart_Printf(0,"Action=down:x=%d,\ty=%d\n",x,y);
break;
case TCHSCR_ACTION_UP:
Uart_Printf(0,"Action=up:x=%d,\ty=%d\n",x,y);
break;
case TCHSCR_ACTION_MOVE:
Uart_Printf(0,"Action=move:x=%d,\ty=%d\n",x,y);
break;
}
hudelay(1000);
}
}
///*****************事件定義*****************///
/////////////////////////////////////////////////////
// Main function. //
////////////////////////////////////////////////////
int main(void)
{
ARMTargetInit(); // do target (uHAL based ARM system) initialisation //
TchScr_init();
TchScr_Test();
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -