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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? touch2410.c

?? 此文件是基于arm在Windows下的ADS1.2開發環境中實現的觸摸屏試驗
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*
;************************************************************************************************************
;*				        				北京精儀達盛科技有限公司
;*                                     	     研    發    部
;*
;*                                 	     http://www.techshine.com
;*
;*--------------------------------------------- 文件信息 ----------------------------------------------------                                      
;*
;* 文件名稱 : Touch2410.c	
;* 文件功能 : 該文件為S3C2410硬件平臺的觸摸屏程序驅動程序
;* 補充說明 : 
;*-------------------------------------------- 最新版本信息 -------------------------------------------------
;* 修改作者 : ARM開發小組
;* 修改日期 : 2004/04/25
;* 版本聲明 : V1.0.1
;*-------------------------------------------- 歷史版本信息 -------------------------------------------------
;* 文件作者 : ARM開發小組
;* 創建日期 : 2004/04/20
;* 版本聲明 : v1.0.0
;*-----------------------------------------------------------------------------------------------------------
;*-----------------------------------------------------------------------------------------------------------
;************************************************************************************************************
;*/

#include "..\inc\touch2410.h"
#include "2410addr.h"
#include "..\..\Startup2410\INC\2410lib.h"
#include "..\glib\glib.h"

  int  TOUCH_X ;
  int  TOUCH_Y ;
  extern char ad_flag;

#define isDebug 0  //如果此值是1,可以串口輸出信息,此值是0,不輸出信息

	const int ADCount = 10;
	int ArrayDat0[ADCount];
	
#define avaverage 0
#define optimize 1

#define method optimize

	
/*
***********************************************************************************************************
*
*          						----***--   配置宏    --***-----
*
***********************************************************************************************************
*/
	
	#ifndef GUI_TOUCH_AD_LEFT      									// 由AD轉換器返回的320X240屏的最左面的值
  		//#define GUI_TOUCH_AD_LEFT 		610   
  		#define GUI_TOUCH_AD_LEFT 		20   
	#endif

	#ifndef GUI_TOUCH_AD_RIGHT      								// 由AD轉換器返回的320X240屏的最右面的值 
  		#define GUI_TOUCH_AD_RIGHT 		935    
	#endif

	#ifndef GUI_TOUCH_AD_TOP       									// 由AD轉換器返回的320X240屏的最上面的值 
  		//#define GUI_TOUCH_AD_TOP 		710
  		#define GUI_TOUCH_AD_TOP 		60
	#endif

	#ifndef GUI_TOUCH_AD_BOTTOM     								// 由AD轉換器返回的320X240屏的最下面的值 
  		//#define GUI_TOUCH_AD_BOTTOM  	360
  		#define GUI_TOUCH_AD_BOTTOM  	960
	#endif

	#ifndef GUI_TOUCH_XSIZE
  		#define GUI_TOUCH_XSIZE 		640
	#endif
	#ifndef GUI_TOUCH_YSIZE
  		#define GUI_TOUCH_YSIZE 		480
	#endif

/*
*************************************************************************************************************
- 函數名稱: void Touch_Show(int x, int y)
- 函數功能:觸摸屏觸點顯示函數
- 輸入參數:x:橫坐標,y:縱坐標
- 輸出參數:無
*************************************************************************************************************
*/ 
void Touch_Show(int x, int y)
{
    Uart_Printf("量化后的結果:x = %d, y = %d\n\n",x,y);
    Fill_Circle (x, y, 15);
    Delay(1500);
    Set_Color(GUI_RED);
    Fill_Rect(0,0,639,479);
  	Set_Color(GUI_YELLOW);
}

/*
*************************************************************************************************************
- 函數名稱: void Touch_Init(void)
- 函數功能:初始化觸摸屏控制器
- 輸入參數:無
- 輸出參數:無
*************************************************************************************************************
*/ 
void Touch_Init(void)				
{
    rADCDLY   = (0x5000);	                                   // ADC Start or Interval Delay
	rADCTSC   = (0<<8)|(1<<7)|(1<<6)|(0<<5)|(1<<4)|(0<<3)|(0<<2)|(3);  //設置成為等待中斷模式
	//rADCTSC   = (0<<8)|(1<<7)|(1<<6)|(0<<5)|(1<<4)|(1<<3)|(0<<2)|(3);  //設置成為等待中斷模式,disable int
	rADCCON	= (1<<14)|(49<<6)|(7<<3)|(0<<2)|(1<<1)|(0);	                  //設置ADC控制寄存器
}

/*
*************************************************************************************************************
- 函數名稱:void TouchINT_Init(void)
- 函數功能:觸摸屏中斷初始化
- 輸入參數:無
- 輸出參數:無
*************************************************************************************************************
*/
void TouchINT_Init(void)													             //觸摸屏硬件接口使能
{
    if ((rSRCPND & BIT_ADC)){                 //清除中斷掛起位
    	rSRCPND |= BIT_ADC;
    } 
     
     if ((rINTPND & BIT_ADC)){
    	rINTPND |= BIT_ADC;
    }
 
    if ((rSUBSRCPND & BIT_SUB_TC)){
    	rSUBSRCPND |= BIT_SUB_TC;
    }
    
    if ((rSUBSRCPND & BIT_SUB_ADC)){
    	rSUBSRCPND |= BIT_SUB_ADC;
    }
    rINTMSK  &= ~(BIT_ADC);      //相關中斷屏蔽位置0,使能中斷
    rINTSUBMSK  &= ~(BIT_SUB_TC);
    pISR_ADC = (unsigned)Touch_ISR;             //設置中斷向量
}

/*
*************************************************************************************************************
- 函數名稱: void __irq Touch(void)
- 函數功能:觸摸屏中斷
- 輸入參數:無
- 輸出參數:無
*************************************************************************************************************
*/ 

void __irq  Touch_ISR(void){
	int AD_XY,yPhys,xPhys;
	
	//關中斷
	rINTMSK |= (BIT_ADC);
	rINTSUBMSK |= (BIT_SUB_ADC | BIT_SUB_TC);	// 關閉子中斷(ADC和TC) 
	
	//獲取位置
	AD_XY  = GetTouch_XY_AD();
	yPhys = (AD_XY) & 0xffff;      //獲取Y的AD值
    xPhys = (AD_XY >> 16) & 0xffff;//獲取X的AD值
    TOUCH_X = AD2X(xPhys);
    TOUCH_Y = AD2Y(yPhys);
   	// 
   	Touch_Show(TOUCH_X,TOUCH_Y);
    //開中斷,清空掛起位
    rSUBSRCPND |= BIT_SUB_TC;
    ClearPending(BIT_ADC);
    
    rINTMSK  &= ~(BIT_ADC);
    rINTSUBMSK &= ~(BIT_SUB_ADC);
    rINTSUBMSK &= ~(BIT_SUB_TC);
    
}
/*
*************************************************************************************************************
- 函數名稱: void selectsort(int* r,int n)
- 函數功能:選擇排序
- 輸入參數:r[] is struct rec,n是要排序記錄的個數
- 輸出參數:無
*************************************************************************************************************
*/
void selectsort(int* r,int n){ //r[] is struct rec,選擇排序
    int i,j,k;
    int w;//struct rec
    for(i = 0; i < n - 1; i ++){
        k = i;
        for (j = i + 1; j < n; j ++){
            if (r[j] < r[k])
                k = j;
        }
        if (k != i){
            w=r[i];//交換
            r[i]=r[k];
            r[k]=w;
        }
    }
    #if (isDebug == 1)
        Uart_Printf("Sort::");
        for (i = 0; i < n; i++)
            Uart_Printf("%d, ", r[i]);
        Uart_Printf("  end\n");
    #endif
}

/*
*************************************************************************************************************
- 函數名稱: int GetDat0(int* p)
- 函數功能:將采集到的數據進行處理,去除不穩定的抖動值,得到準確的AD轉換值
- 輸入參數:采集到的數據的指針
- 輸出參數:準確的AD轉換值
*************************************************************************************************************
*/ 
int GetDat0(int* p){
    int Dat0;
    //const int ADCount = 10;
    int tmp[9];//ADCount - 1
    int i, k, diftag = 0;
    struct ARRAYCMP{
        int difsize;
        int continuecount;
    }ArrayCmp[9];//ADCount - 1
    #if (method == avaverage) //將采集的點數據平均處理
        Dat0 = 0;
        for(i = 0; i < ADCount; i ++){
            Dat0 += p[i];     //轉換結果累加,最后取平均
        }
        Dat0 /= ADCount;

    #elif (method == optimize) //取最優點,即選取各點之間差別最小且連續個數最多的點,這是最穩定值
        selectsort(p, ADCount); //將采集到的數據排序(由小到大)
        for (i = 0; i < ADCount - 1; i ++){
            tmp[i] = p[i + 1] - p[i]; //tmp[]存儲各點之間的差值
        }
        #if (isDebug == 1)
        Uart_Printf("tmp:\n    ");

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品国产在热久久| 成人欧美一区二区三区黑人麻豆 | 色综合久久中文字幕综合网 | 国产乱码精品一区二区三区av | 欧美精品一卡两卡| 欧美日韩色综合| 欧美日韩黄色一区二区| 欧美探花视频资源| 欧美私人免费视频| 日韩一区二区免费电影| 欧美mv日韩mv国产| 国产欧美日韩在线| 中文字幕国产一区| 亚洲精品高清在线| 日韩精品亚洲一区| 国模少妇一区二区三区| 成人一级视频在线观看| 91网址在线看| 9191久久久久久久久久久| 日韩一区二区麻豆国产| 久久精品在这里| 亚洲少妇30p| 日韩精品国产精品| 国产综合色产在线精品| av在线综合网| 91精品国产综合久久久久久久| 日韩色视频在线观看| 中文在线免费一区三区高中清不卡| 欧美国产激情一区二区三区蜜月| 亚洲日本va午夜在线影院| 午夜精品久久久久久久99水蜜桃 | 国产精品一卡二卡在线观看| 成人av资源站| 欧美人伦禁忌dvd放荡欲情| 久久免费的精品国产v∧| 亚洲欧美国产三级| 久久国产精品无码网站| av男人天堂一区| 91精品国产欧美日韩| 国产精品女主播av| 美女高潮久久久| 91免费国产在线| 精品福利一二区| 亚洲最新视频在线观看| 黄色小说综合网站| 欧美日韩一区久久| 中文字幕欧美一| 狠狠色丁香久久婷婷综合丁香| 色婷婷av久久久久久久| 久久久久久久久久久久久久久99| 亚洲国产视频网站| 91丝袜呻吟高潮美腿白嫩在线观看| 欧美一级午夜免费电影| 一区二区三区四区在线| 成人开心网精品视频| 久久久影视传媒| 蜜桃av一区二区在线观看| 色狠狠av一区二区三区| 国产精品第13页| 国产精品亚洲专一区二区三区| 欧美另类videos死尸| 亚洲激情综合网| 91在线你懂得| 亚洲欧洲av另类| 国产成人午夜精品影院观看视频| 欧美成人精品福利| 久久国产剧场电影| 日韩视频一区二区三区 | 日韩精品一区二区三区三区免费| 亚洲黄色免费电影| 91久久香蕉国产日韩欧美9色| 亚洲国产精品激情在线观看| 国产乱人伦偷精品视频免下载| 欧美精品日韩综合在线| 性感美女久久精品| 欧美丰满一区二区免费视频| 亚洲成人中文在线| 欧美精品aⅴ在线视频| 亚洲第一二三四区| 欧美一区二区私人影院日本| 日韩精品久久久久久| 欧美一级二级在线观看| 老司机免费视频一区二区三区| 日韩一区二区三区四区| 蜜桃视频第一区免费观看| 精品国免费一区二区三区| 国产在线精品一区二区不卡了| 欧美大度的电影原声| 国产在线一区二区| 国产午夜久久久久| www.色精品| 亚洲一级二级三级| 日韩欧美国产wwwww| 国产麻豆精品在线| 日韩理论电影院| 欧美日韩精品欧美日韩精品| 日本成人在线电影网| 精品国产乱码久久久久久久久| 国产精品一区二区久久不卡| 亚洲天堂精品在线观看| 欧美日韩国产色站一区二区三区| 日产国产高清一区二区三区| 久久久久久久久久久久久夜| 99久久99久久久精品齐齐| 午夜在线成人av| 久久这里只有精品视频网| 成人av影视在线观看| 亚洲午夜精品17c| 精品国产自在久精品国产| 成人18视频在线播放| 亚洲国产成人tv| 日本一区二区三区高清不卡| 色美美综合视频| 国产综合色在线| 亚洲韩国精品一区| 亚洲国产经典视频| 欧美精品久久久久久久多人混战 | 成人激情午夜影院| 亚洲午夜久久久久久久久久久| 精品99一区二区三区| 色94色欧美sute亚洲13| 韩国毛片一区二区三区| 亚洲综合色区另类av| 国产午夜亚洲精品理论片色戒 | 日韩欧美一区在线| 91视频www| 国产91色综合久久免费分享| 亚洲一区成人在线| 国产精品久久久久久户外露出 | 国产suv一区二区三区88区| 亚洲成人www| 亚洲男人电影天堂| 日本一区二区视频在线观看| 日韩欧美一区在线| 欧美日韩情趣电影| 色悠悠久久综合| 不卡大黄网站免费看| 国产一区二区美女诱惑| 免费成人性网站| 五月综合激情网| 亚洲成人精品一区| 亚洲无线码一区二区三区| 综合久久久久久| 中文字幕佐山爱一区二区免费| 国产日韩欧美麻豆| 久久亚区不卡日本| 精品电影一区二区三区 | 国产精品视频第一区| 精品国产凹凸成av人导航| 欧美精品丝袜中出| 欧美日本高清视频在线观看| 欧美日韩极品在线观看一区| 91啪在线观看| 色婷婷香蕉在线一区二区| 91网页版在线| 欧美色图在线观看| 欧美乱妇15p| 精品区一区二区| 久久精品人人做| 国产精品久久久久久福利一牛影视| 国产精品麻豆久久久| 亚洲人成小说网站色在线| 一区二区在线观看免费| 亚洲综合一区二区精品导航| 亚洲妇女屁股眼交7| 日韩高清一区二区| 国产一区二区三区四区在线观看| 国产一区欧美日韩| 9久草视频在线视频精品| 色综合亚洲欧洲| 777午夜精品视频在线播放| 日韩精品一区在线| 久久久久久毛片| 自拍偷拍国产精品| 日韩成人一级片| 国产麻豆午夜三级精品| 91尤物视频在线观看| 91.com视频| 中文字幕欧美激情一区| 亚洲一区二区三区四区五区中文| 日韩在线一区二区| 成人毛片视频在线观看| 欧美色窝79yyyycom| 久久久精品国产免大香伊| 亚洲美女视频在线| 免费成人在线播放| 99re这里都是精品| 日韩午夜在线播放| 亚洲色大成网站www久久九九| 亚洲成av人**亚洲成av**| 国产老妇另类xxxxx| 在线观看一区日韩| 久久综合av免费| 午夜欧美一区二区三区在线播放| 韩国欧美一区二区| 欧美撒尿777hd撒尿| 国产精品三级视频| 日韩黄色免费电影| 91麻豆国产福利精品| 精品国产91乱码一区二区三区|