±±Àí¹¤Ç¶ÈëʽϵͳʵÑ鱨¸æ - ͼÎÄ

·¢²¼Ê±¼ä : ÐÇÆÚÎå ÎÄÕ±±Àí¹¤Ç¶ÈëʽϵͳʵÑ鱨¸æ - ͼÎĸüÐÂÍê±Ï¿ªÊ¼ÔĶÁ

//ÉèÖÃADC ¿ØÖƼĴæÆ÷ 2£©ÖжϷþÎñ³ÌÐò int Dat0, i;

int Count = 5; //ת»»´ÎÊý

unsigned int x, y; //´æ·Åת»»½á¹û

unsigned int AD_XY = 0; //´æ·Å×îÖÕXY µÄת»»½á¹û Dat0 = 0; //³õʼ»¯ÀÛ¼Ó±äÁ¿

while ((rADCDAT0 & 0x8000) | (rADCDAT1 & 0x8000)); //²âÊÔrADCDAT µÄbit15 ÊÇ·ñµÈÓÚ0(´¥±Ê°´ÏÂ״̬) //ÏÂÃæµÄ´úÂëÊÇX£¬Y ·Ö±ðת»»Ä£Ê½

rGPGUP = 0xffff; //ÉèÖÃGPIO£¬½ûÖ¹GPG ÉÏÀ­

rADCTSC=(0<<8)|(0<<7)|(1<<6)|(1<<5)|(0<<4)|(1<<3)|(0<<2)|(1); //ÉèÖÃת»»X µÄλÖÃ

for(i = 0; i < Count; i++){ //¿ªÊ¼×ª»»Y£¬¹²Count ´Î rADCCON = (1<<14)|(49<<6)|(7<<3)|(0<<2)|(0<<1)|(1); //ÉèÖÿØÖƼĴæÆ÷

while(rADCCON & 0x1); //²âÊÔת»»¿ªÊ¼Î»

while(!(0x8000 & rADCCON)); // ²âÊÔECFLG λ£¬×ª»»ÊÇ·ñ½áÊø Delay(200);

Dat0 += (rADCDAT0) & 0x3ff; //ת»»½á¹ûÀÛ¼Ó£¬×îºóȡƽ¾ù }

EL - ARM - 830 ʵÑéÖ¸µ¼Êé 77

if (Dat0 != 0){ //Èç¹ûX ÓÐЧ£¬¼ÌÐøת»»Y x = Dat0 / Count; Dat0 = 0;

rADCTSC=(0<<8)|(1<<7)|(0<<6)|(0<<5)|(1<<4)|(1<<3)|(0<<2)|(2); //ÉèÖÃת»»Y µÄλÖÃ

for (i = 0; i < Count; i++){ //¿ªÊ¼×ª»»Y£¬¹²Count ´Î rADCCON = (1<<14)|(49<<6)|(5<<3)|(0<<2)|(0<<1)|(1); //ÉèÖÿØÖƼĴæÆ÷

while(rADCCON & 0x1); //²âÊÔת»»¿ªÊ¼Î»

while(!(0x8000 & rADCCON)); // ²âÊÔECFLG λ£¬×ª»»ÊÇ·ñ½áÊø Delay(200);

Dat0 += (rADCDAT1) & 0x3ff; //ת»»½á¹ûÀÛ¼Ó£¬×îºóȡƽ¾ù }

y = Dat0 / Count; }

rGPGUP = 0x00; //ÉèÖÃGPIO£¬Ê¹ÄÜGPG ÉÏÀ­

AD_XY = (x << 16) | y; //¸ß16 λ´æ·ÅX£¬µÍ16 λ´æ·ÅY //»Ö¸´µÈ´ýÖжÏģʽ Touch_Init(); Delay(1000);

while (!((rADCDAT0 & 0x8000) & (rADCDAT1 & 0x8000)));

//²âÊÔrADCDAT µÄbit15 ÊÇ·ñµÈÓÚ1(´¥±Ȩ̂Æð״̬)£¬Èç¹ûÊÇ1£¬Ôò¿ÉÒÔ¿ªÖжÏÁË

22

Ïêϸ¾ßÌåµÄÓ¦Óã¬Çë²Î¼û\\ʵÑé³ÌÐò\\HARDWARE\\ADS\\ʵÑéÊ®ÈýĿ¼ÏµÄTouch.mcp Ïî Ä¿Îļþ¡£ÇëÏêϸÔĶÁ´úÂë×¢ÊÍ¡£ Î塢ʵÑé²½Öè

1£®±¾ÊµÑéʹÓÃʵÑé½ÌѧϵͳµÄCPU °å£¬LCD£¬´¥ÃþÆÁ¡£

2£®ÔÚPC »ú²¢¿ÚºÍʵÑéÏäµÄCPU °åÉϵÄJTAG ½Ó¿ÚÖ®¼ä£¬Á¬½Ó·ÂÕæµ÷ÊÔµçÀ¡£ 3£®°ÑLCD µçÔ´¿ª¹Ø¸½½üµÄS2 µÄ2 ¿ª¹Ø²¦µ½ON ״̬¡£

4£®¼ì²éÁ¬½ÓÊÇ·ñ¿É¿¿£¬¿É¿¿ºó£¬½ÓÈëµçÔ´Ïߣ¬ÏµÍ³Éϵ硣´ò¿ªLCD µÄµçÔ´¿ª¹Ø¡£

5£®´ò¿ªADS1.2 ¿ª·¢»·¾³£¬´ÓÀïÃæ´ò¿ª\\ʵÑé³ÌÐò\\HARDWARE\\ADS\\ʵÑéÊ®Èý\\Touch.mcp ÏîÄ¿Îļþ£¬½øÐбàÒë¡£

6£®±àÒëͨ¹ýºó£¬½øÈëADS1.2 µ÷ÊÔ½çÃ棬¼ÓÔØ\\ʵÑé³ÌÐò\\HARDWARE\\ADS\\ʵÑéÊ®Èý EL - ARM - 830 ʵÑéÖ¸µ¼Êé 78

\\Touch_Data\\Debug ÖеÄÓ³ÏóÎļþ³ÌÐòÓ³ÏñTouch.axf¡£

7£®ÔÚADS µ÷ÊÔ»·¾³ÏÂÈ«ËÙÔËÐÐÓ³ÏóÎļþ¡£ÓÃÔ²»¬µÄ±ÊÍ·µã»÷ÆÁ£¬¹Û²ìÒº¾§ÆÁµÄÏÔʾ ½á¹û¡£¾ßÌåµÄÏìÓ¦ÐèÒª¸ù¾Ý¾ßÌåµÄÓ¦ÓóÌÐò½øÐпª·¢¡£

8£®ÊµÑéÍê±Ï£¬ÏȹرÕLCD µçÔ´¿ª¹Ø£¬S2 µÄ2 ¿ª¹Ø¸´Î»£¬ÔٹرÕADS ¿ª·¢»·¾³£¬¹Ø±Õ µçÔ´¡£

Áù¡¢ÊµÑé×ܽá

¾­¹ý¸ÃʵÑ飬ÎÒѧ»áÁËARMÔÚ´¥ÃþÆÁÉϵıà³Ì¼°Ïà¹ØÓ¦Óã¬Á˽ⴥÃþÆÁ¹¤×÷µÄ»ù±¾Ô­Àí£¬ Àí½âLCD ÈçºÎºÍ´¥ÃþÆÁÏàÅäºÏ£¬Í¨¹ý±à³ÌʵÏÖÁ˶Դ¥ÃþÆÁµÄ¿ØÖÆ¡£¶ÔÓÚ´¥ÃþÆÁÈ¡µã²ÉÑùµÄ³ÌÐò˼ÏëÓÐÁËÒ»¶¨ÈÏʶ¡£

23

Ìî³äÈý½ÇÐÎʵÑé

Ò»¡¢ÊµÑé˵Ã÷£º

ÀûÓÃARM¼°µç×èʽ´¥ÃþÆÁʵÏÖÈý½ÇÐλæÖƼ°Ìî³ä¹¦ÄÜ ¶þ¡¢Ê¹ÓÃ˵Ã÷

ÏȺó´¥ÃþÆÁÄ»Èý´Î£¬ÕâÈý¸öµã×÷ΪÈý½ÇÐÎÈý¸ö¶¥µã¡£ARM×Ô¶¯»æÖÆͼÐΡ£ Ôٴδ¥ÃþÆÁĻͼÐÎÇåÁ㣬²¢½«Õâ´Î´¥Ãþ×÷ΪÏ´λæÖÆÈý½ÇÐÎÒ»¸ö¶¥µãÊäÈë¡£ Èý¡¢³ÌÐò˵Ã÷

¸Ã³ÌÐòÊÇ»ùÓÚÀý³ÌÊ®Èý±àд¶ø³ÉµÄ£¬ÀûÓýṹ typedef struct Point{ int x; int y;

}; struct Point P[3]; ´¢´æÊäÈëµã×ø±ê£¬µ±±äÁ¿i=3ʱ¿ªÊ¼»æÖÆ£¬ÏÈ»æÖƳöÈý±ß£¬ÔÙ½øÐÐÌî³ä£ºÒÔÆäÖÐÒ»µãΪ¶¥µã£¬Óë¶Ô±ßÁ¬Ïߣ¬ÔÚÕâÀÎÒÊÇÒÔºá×ø±êΪ×Ô±äÁ¿¼ÆËã¶Ô±ßÉϵã×ø±êµÄ ËÄ¡¢±àдʱÓöµ½µÄÎÊÌâ ÔÚ±àдµÄ¹ý³ÌÖУ¬Ê×ÏÈÓöµ½ÎÊÌâÊDz»ÄÜÕýÈ·»­³öͼÐΣ¬ÓÉÓÚÔÚk²»µÈÓÚÎÞÇîʱËã¶Ô±ß×ø±êÓõ½Ê½×Óy1=k(x1-x0)+y0,ÆäÖÐk=(y1-y0)/(x1-x0)ΪintÐαäÁ¿£¬¹ÊkÓëʵ¼ÊÖµ²»µÈ£¬ÎÒ½«Óï¾ä(P[1].y-P[0].y)/(P[1].x-P[0].x)*(P[1].y-P[0].y)+P[0].y¸ÄΪ(P[1].y-P[0].y)*(k-P[0].x)/(P[1].x-P[0].x)+P[0].y ½á¹û¾ÍÕýÈ·ÁË

´ËÍ⣬ÎÒ½«Óï¾äk++¸ÄΪk=k+0.03,£¨´Ë´¦kÏ൱ÓÚ±äÁ¿x£©ÒÔ½â¾öx1-x0½ÏСʱ£¬¶Ô±ßÉϵãÊý²»¹»Èý½ÇÐÎÌî²»ÂúµÄÇé¿ö£¨ÏÈÇ°ÊÔ¹ýk=k+0.01µÄÇé¿ö£¬Ìî³äËٶȲ»ÀíÏ룬k=k+0.03,Çé¿öµÃµ½Á˸ÄÉÆ£©Æäʵ¸Ã³ÌÐò¿ÉÒÔ½øÒ»²½¸ÄÉÆ£¬¼´x1-x0½ÏСµÄʱºòÓÃyÀ´ÌÖÂÛ£¬µ«¼øÓÚÄ¿Ç°³ÌÐòÒѾ­Âú×ãÒªÇ󣬾Ͳ»±Ø½øÒ»²½ÌÖÂÛÁË Îå¡¢³ÌÐòÖ÷º¯Êý

;************************************************************************************************************ ;* ±±¾©¾«ÒÇ´ïÊ¢¿Æ¼¼ÓÐÏÞÔðÈι«Ë¾ ;* ÑÐ ·¢ ²¿ ;*

;* http://www.techshine.com ;*

;*--------------------------------------------- ÎļþÐÅÏ¢ ---------------------------------------------------- ;*

;* ÎļþÃû³Æ : MAIN.c

;* Îļþ¹¦ÄÜ : ËùÓÐÓ¦ÓóÌÐòµÄÍ·Îļþ¾ù¼ÓÔÚ´ËÎļþÖÐ ;* ²¹³ä˵Ã÷ :

;*-------------------------------------------- ×îа汾ÐÅÏ¢ ------------------------------------------------- ;* ÐÞ¸Ä×÷Õß : ARM7¿ª·¢Ð¡×é ;* ÐÞ¸ÄÈÕÆÚ : 2004/04/25 ;* °æ±¾ÉùÃ÷ : V1.0.1

;*-------------------------------------------- ÀúÊ·°æ±¾ÐÅÏ¢ -------------------------------------------------

24

;* Îļþ×÷Õß : ARM7¿ª·¢Ð¡×é ;* ´´½¨ÈÕÆÚ : 2004/04/20 ;* °æ±¾ÉùÃ÷ : v1.0.0

;*----------------------------------------------------------------------------------------------------------- ;*-----------------------------------------------------------------------------------------------------------

;************************************************************************************************************ ;*/

//#include \#include \#include \#include \#include \#include \#include \

char ad_flag;

extern GUI_FONT GUI_Font8x16;

extern GUI_FONT CHINESE_FONT12; extern GUI_FONT CHINESE_FONT16;

int i=0; double k;

typedef struct Point{ int x; int y;

}; struct Point P[3]; /*

************************************************************************************************************* - º¯ÊýÃû³Æ : Main(void)

- º¯Êý˵Ã÷ : ϵͳµÄÖ÷³ÌÐòÈë¿Ú - ÊäÈë²ÎÊý : ÎÞ - Êä³ö²ÎÊý : ÎÞ

************************************************************************************************************* */

void Main(void){

GUI_Init();

25

ÁªÏµºÏͬ·¶ÎÄ¿Í·þ£ºxxxxx#qq.com(#Ì滻Ϊ@)