亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? touch.c

?? ucos_ii在mini2440上的移植KEIL編譯環(huán)境
?? C
字號(hào):
#include <stdio.h>
#include "touch.h"
#include "../timeer/timeer.h"

#define GUI_TOUCH_XSIZE LCD_WIDTH
#define GUI_TOUCH_YSIZE LCD_HEIGHT

#define GUI_TOUCH_AD_LEFT (1185)
#define GUI_TOUCH_AD_RIGHT (99)
#define GUI_TOUCH_AD_TOP (168)
#define GUI_TOUCH_AD_BOTTOM (1120)

#define STATE_PEN_DOWN (1)
#define STATE_PEN_UP (2)

static int s_nPenState = STATE_PEN_UP;
static int timerID = -1;
static int xynum = 0;
static int cx = 0;
static int cy = 0;


findxy_t chfindxy[20]={0};

int TOUCH_AD2X(int nAdxValue)
{
	int nTempVal = 0;
	
	nTempVal = (nAdxValue - GUI_TOUCH_AD_LEFT) * (GUI_TOUCH_XSIZE -1);
	nTempVal = nTempVal / (GUI_TOUCH_AD_RIGHT - GUI_TOUCH_AD_LEFT);
		
	return nTempVal;
}

int TOUCH_AD2Y(int nAdyValue)
{
	int nTempVal = 0;
	
	nTempVal = (nAdyValue - GUI_TOUCH_AD_TOP) * (GUI_TOUCH_YSIZE -1);
	nTempVal = nTempVal / (GUI_TOUCH_AD_BOTTOM - GUI_TOUCH_AD_TOP);
		
	return nTempVal;
}

void TOUCH_WaitPenUp()
{
	ADCCON = (1<<14)+(9<<6);
	ADCTSC = 0x1d3;
	ADCUPDN = 0;
}

void TOUCH_WaitPenDown()
{
	ADCCON = (1<<14)+(9<<6);
	ADCTSC = 0xd3;
	ADCUPDN = 0;
}

void TOUCH_findXY()
{
	int nIndex = 0;
	int nX = 0;
	int nY = 0;
	int nXCount = 0;
	int nYCount = 0;

	int nXMin = 2000;
	int nXMax = -1;
	int nYMin = 2000;
	int nYMax = -1;


	for(nIndex =0 ; nIndex < 5; nIndex++)
	{
		nX = chfindxy[nIndex].x;
		nY = chfindxy[nIndex].y;

		//記錄最小值
		if(nX < nXMin)
			nXMin = nX;
		if(nY < nYMin)
			nYMin = nY;

		//記錄最大值
		if(nX < nXMax)
			nXMax = nX;
		if(nY < nYMax)
			nYMax = nY;

		//統(tǒng)計(jì)采樣值
		nXCount += nX;
		nYCount += nY;
	}

	nX = (nXCount - nXMin -nXMax) / 3;
	nY = (nYCount - nYMin -nYMax) / 3;
	cx = nX;
	cy = nY;
	//LCD_PutPixel(nY,nX,RGB(0,0,0));
}

void TOUCH_GetXY()
{
	int nIndex = 0;
	int nX = 0;
	int nY = 0;
	int nXCount = 0;
	int nYCount = 0;

	int nXMin = 2000;
	int nXMax = -1;
	int nYMin = 2000;
	int nYMax = -1;

	char xch[20] = {0};
	char ych[20] = {0};



	for(nIndex =0 ; nIndex < 6; nIndex++)
	{
		//開(kāi)始采樣
		ADCTSC = ((1<<3)|(1<<2));
		ADCCON |= 0x1;
		//等待采樣結(jié)束
		while(ADCCON & 0x1);
		while(!(ADCCON & 0x8000));
		//獲取采樣值
		nX = (ADCDAT0 & 0x3FF);
		nY = (ADCDAT1 & 0x3FF);

		//記錄最小值
		if(nX < nXMin)
			nXMin = nX;
		if(nY < nYMin)
			nYMin = nY;

		//記錄最大值
		if(nX < nXMax)
			nXMax = nX;
		if(nY < nYMax)
			nYMax = nY;

		//統(tǒng)計(jì)采樣值
		nXCount += nX;
		nYCount += nY;
	}

	nX = (nXCount - nXMin -nXMax) / 4;
	nY = (nYCount - nYMin -nYMax) / 4;
	
	/*坐標(biāo)電壓打印*/
	sprintf(xch,"%d",nX);
	sprintf(ych,"%d",nY);
	
	LCD_DrawText(70,40,xch,4,RGB(255,255,255),RGB(0,0,0));
	LCD_DrawText(100,40,ych,4,RGB(255,255,255),RGB(0,0,0));	
	
	/*邊沿修正*/
	if(nX > GUI_TOUCH_AD_LEFT)
		nX = GUI_TOUCH_AD_LEFT;
	if(nX < GUI_TOUCH_AD_RIGHT)
		nX = GUI_TOUCH_AD_RIGHT;
	if(nY < GUI_TOUCH_AD_TOP)
		nY = GUI_TOUCH_AD_TOP;
	if(nY > GUI_TOUCH_AD_BOTTOM)
		nY = GUI_TOUCH_AD_BOTTOM;
	
	//將電壓轉(zhuǎn)換為坐標(biāo)	坐標(biāo)獲得后做相應(yīng)的處理
	nX = TOUCH_AD2X(nX);
	nY = TOUCH_AD2Y(nY);
	
	/*X調(diào)整*/
	if(nX<230 && nX>189)
		nX+=3;
	else if(nX<=54 && nX>5)
		nX+=3;
	else if(nX<=189 && nX>54)
		nX+=3;
	else if(nX<=5 && nX>0)
		nX+=3;
	//Y調(diào)整
	if(nY<=240 && nY>170)
		nY-=3;

	/*坐標(biāo)打印*/
	memset(xch,0,sizeof(xch));
	memset(ych,0,sizeof(ych));
	sprintf(xch,"%d",nX);
	sprintf(ych,"%d",nY);
	
	LCD_DrawText(70,80,xch,3,RGB(255,255,255),RGB(0,0,0));
	LCD_DrawText(100,80,ych,3,RGB(255,255,255),RGB(0,0,0));
	
	//去掉第一次與最后一次	
	if(xynum > 1 && xynum <= 6)
	{
		chfindxy[xynum].x=nX;
		chfindxy[xynum].y=nY;
		chfindxy[xynum].num=xynum;
	}
	xynum++;
	//發(fā)現(xiàn)第一點(diǎn)
	if(xynum == 6)
	{	
		TOUCH_findXY();
		//xynum=0;
		//memset(chfindxy,0,sizeof(chfindxy));	
	}
	else if(xynum > 6)
	{
		if(abs(nX-cx) >= 0 && abs(nX-cx) <= 7 && abs(nY-cy) >= 0 && abs(nY-cy) <= 7)
		{
			cx = nX;
			cy = nY;	
		}
	}
	
	//等待中斷提起
	TOUCH_WaitPenUp();
					 
}

void TOUCH_Timer()
{
	if(s_nPenState == STATE_PEN_DOWN)
	{
		TOUCH_GetXY(); 	
	}
}

void TOUCH_Start()
{
	s_nPenState = STATE_PEN_DOWN;
	
	TIMER_TS_Start(timerID);
	//等待抬起
	TOUCH_WaitPenUp();	
}

void TOUCH_Stop()
{
	s_nPenState = STATE_PEN_UP;
	//等待按下
	TOUCH_WaitPenDown();
	TIMER_TS_Stop(timerID);
	
	xynum=0;
	memset(chfindxy,0,sizeof(chfindxy));
	cx=0;
	cy=0;
	
}

void TOUCH_IRQEntry()
{
	if(SUBSRCPND & BIT_SUB_TC)
	{
		if(ADCUPDN & STATE_PEN_DOWN)
		{
			TOUCH_Start();//按下開(kāi)始采樣
		}
		else if(ADCUPDN & STATE_PEN_UP)
		{
			TOUCH_Stop();//抬起結(jié)束采樣	
		}
		SUBSRCPND |= BIT_SUB_TC;
	}
}

void TOUCH_Init()
{
	xynum=0;
	cx=0;
	cy=0;



	memset(chfindxy,0,sizeof(chfindxy));
	IRQ_SetMask(INT_TYPE_INT_ADC,0); //開(kāi)啟一級(jí)中斷
	//IRQ_SetMask(INT_TYPE_INT_ADC_S,0);
	IRQ_SetMask(INT_TYPE_INT_TC,0);

	//INTMSK &= ~BIT_ADC;
	//INTSUBMSK &= ~BIT_SUB_TC;

	ADCDLY = 30000;

	ADCCON = (1 << 14) + (9 << 6);
	ADCTSC = 0xd3; //中斷等待模式

	IRQ_Install(INT_TYPE_INT_TC,TOUCH_IRQEntry);
	//創(chuàng)建軟定時(shí)
	timerID = TIMER_TS_Create(10,1,TOUCH_Timer);	
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品视频观看| 国产精品情趣视频| 99久久亚洲一区二区三区青草| 亚洲男同性视频| 久久久久免费观看| 欧美日高清视频| 色综合色狠狠天天综合色| 九九热在线视频观看这里只有精品| 国产精品欧美一区喷水| 欧美一激情一区二区三区| 91网页版在线| 丁香一区二区三区| 乱一区二区av| 午夜视频一区在线观看| 亚洲日本青草视频在线怡红院| 久久久一区二区| 日韩一区二区免费视频| 欧美综合久久久| 99九九99九九九视频精品| 国产麻豆一精品一av一免费| 热久久一区二区| 无吗不卡中文字幕| 亚洲自拍都市欧美小说| 日韩理论片中文av| 中文字幕日韩av资源站| 久久久久久黄色| 久久欧美中文字幕| 久久无码av三级| 日韩欧美色综合| 91精品国产综合久久婷婷香蕉| 91网上在线视频| 色丁香久综合在线久综合在线观看| 丁香婷婷深情五月亚洲| 国产成人亚洲综合a∨婷婷图片| 韩国女主播成人在线观看| 奇米综合一区二区三区精品视频| 日韩综合一区二区| 日韩精品电影在线| 丝袜亚洲另类欧美综合| 日韩有码一区二区三区| 日本aⅴ精品一区二区三区| 免费成人你懂的| 韩国精品在线观看| 国产精品白丝jk黑袜喷水| 国产毛片一区二区| 懂色av噜噜一区二区三区av| 成人激情免费网站| 93久久精品日日躁夜夜躁欧美| 成人sese在线| 91美女在线视频| 欧美性色欧美a在线播放| 欧美另类videos死尸| 欧美一级专区免费大片| 久久新电视剧免费观看| 亚洲国产精品99久久久久久久久| 国产精品久久国产精麻豆99网站| 国产精品五月天| 亚洲精品中文在线| 亚洲成人动漫精品| 九九精品一区二区| 高清国产午夜精品久久久久久| 成人性生交大片免费看中文 | 日本视频中文字幕一区二区三区| 日日夜夜一区二区| 国产美女av一区二区三区| 99精品视频在线免费观看| 精品视频999| 亚洲精品一区二区三区香蕉| 综合激情网...| 日av在线不卡| www.欧美日韩| 欧美视频在线一区| 久久精品男人天堂av| 亚洲欧美二区三区| 日韩黄色在线观看| 丁香亚洲综合激情啪啪综合| 欧美亚洲国产bt| 久久久久99精品国产片| 亚洲一二三区不卡| 国产一区二区三区免费播放| 99国产一区二区三精品乱码| 欧美精品v国产精品v日韩精品| 久久久久久久综合| 亚洲午夜免费电影| 成人午夜免费视频| 69av一区二区三区| 亚洲欧洲av色图| 久久se精品一区二区| 色屁屁一区二区| 26uuu亚洲婷婷狠狠天堂| 亚洲日本在线看| 国产高清精品在线| 91.com视频| 亚洲精品成人少妇| 国产成人在线影院| 制服丝袜亚洲播放| 亚洲女同女同女同女同女同69| 韩国成人福利片在线播放| 欧美亚洲国产一区二区三区| 国产欧美精品一区二区色综合| 偷拍日韩校园综合在线| 99精品久久只有精品| 欧美精品一区二区在线播放| 一区二区三区四区激情| 福利电影一区二区三区| 日韩女同互慰一区二区| 天天免费综合色| 在线亚洲人成电影网站色www| 国产欧美日韩在线| 久久成人免费网站| 日韩一区二区三区高清免费看看| 亚洲另类中文字| 成人国产精品免费| 国产欧美日韩一区二区三区在线观看| 免费的国产精品| 91精品国产综合久久精品性色| 亚洲一区日韩精品中文字幕| 波多野结衣91| 日本一区二区不卡视频| 国产精品88888| 久久人人爽人人爽| 国产自产高清不卡| 2022国产精品视频| 久久超碰97中文字幕| 日韩三级免费观看| 日本亚洲免费观看| 日韩欧美综合在线| 老司机精品视频一区二区三区| 欧美精三区欧美精三区| 亚洲国产日产av| 欧美系列一区二区| 无码av免费一区二区三区试看| 欧美日韩亚州综合| 天天操天天色综合| 欧美一级高清片| 裸体歌舞表演一区二区| 精品人在线二区三区| 精品一区在线看| 久久久久久久综合| 成人免费av在线| 国产精品国模大尺度视频| 成人视屏免费看| 中文字幕一区二区三区不卡在线 | 黄色日韩三级电影| 久久影院午夜论| 国产成人av在线影院| 国产人成亚洲第一网站在线播放| 国产精一区二区三区| 国产精品久久夜| 91精品91久久久中77777| 亚洲一线二线三线久久久| 欧美三区在线观看| 日本不卡视频在线| 久久久精品日韩欧美| 99这里都是精品| 亚洲激情五月婷婷| 91精品国产色综合久久ai换脸| 久久激情五月婷婷| 欧美激情一区不卡| 色婷婷久久久久swag精品| 午夜欧美2019年伦理| 精品电影一区二区| av一二三不卡影片| 亚洲激情在线播放| 精品日产卡一卡二卡麻豆| 成人少妇影院yyyy| 亚洲va天堂va国产va久| 精品国产一区a| 暴力调教一区二区三区| 亚洲电影在线免费观看| 26uuu欧美| 91福利资源站| 韩国三级在线一区| 玉足女爽爽91| 精品久久久久久久久久久院品网 | 国产精品视频你懂的| 在线亚洲+欧美+日本专区| 美女视频黄 久久| 亚洲视频1区2区| 日韩欧美国产不卡| www.欧美.com| 免费不卡在线观看| 亚洲三级视频在线观看| 欧美mv和日韩mv的网站| 91麻豆国产自产在线观看| 美女在线一区二区| 一区二区三区日韩欧美| 久久久精品天堂| 欧美疯狂做受xxxx富婆| av一区二区久久| 精品一区二区精品| 亚洲午夜国产一区99re久久| 久久精品视频免费观看| 欧美另类一区二区三区| 99精品热视频| 国产美女在线精品| 日本免费在线视频不卡一不卡二| 自拍偷自拍亚洲精品播放| 欧美成人vps| 欧美电影在线免费观看|