⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 4线电阻触摸板的驱动器ADS7843的驱动程序 由凌阳单片机SPCE061A驱动
💻 C
字号:
#include "SPCE061V004.h"
#include "unspmacro.h"

#define  PRECISION  6

unsigned int g_Xposition = 0,g_Yposition = 0;
unsigned int *g_Xpoint,*g_Ypoint;
//unsigned int g_PreXData,g_PreYData;
unsigned int g_Flag=0;
void Initial();
void sendData_7219(unsigned int,unsigned int);
void GetPosition(unsigned int*,unsigned int*);
void openIRQ();
//void OutputData(unsigned int tmp_XPosition[5],unsigned int tmp_YPosition[5]);
//extern unsigned int ScreenBeenTouched;
void OutputData(unsigned int tmp_Xp,unsigned int tmp_Yp);
unsigned char Touched = 0;

int main()
{ 
	unsigned int Data = 0x0000;	
	unsigned int KeyCode = 0;
  Initial();
  g_Xpoint=&g_Xposition;
  g_Ypoint=&g_Yposition;
//  openIRQ();
 INT_FIQ_IRQ();
 // *tmp_Xposition=ReadPosition_7843(0x94); 

   /* GetPosition(g_Xpoint,g_Ypoint);
     GetPosition(g_Xpoint,g_Ypoint);
      GetPosition(g_Xpoint,g_Ypoint);
       GetPosition(g_Xpoint,g_Ypoint);*/
 /*           Delay(1);
    Delay(1);
  
  Delay(10000);
  Delay(1);
	*/
/*	*P_IOB_Data|=0x0004;
	GetPosition(g_Xpoint,g_Ypoint);
*/
	for(;;)
  	{
		if(Touched == 0)
		{
			GetPosition(g_Xpoint,g_Ypoint);		
			if((g_Xposition!=0x0fff)&&(g_Yposition!=0x0000))
	//	if((g_PreXData!=g_Xposition>>PRECISION)||(g_PreYData!=g_Yposition>>PRECISION))
			{
        		g_Xposition=g_Xposition >> PRECISION;
        		g_Yposition=g_Yposition >> PRECISION;  
        		Touched = 1;   	
  //      		Data = ScreenMap[g_Yposition][g_Xposition];
   //     		*P_IOA_Data = ~Data;
				OutputData(g_Xposition,g_Yposition); 
			}	
			//Touched = 0;
		}
		if(Touched == 1)
		{
		//	switch(g_Xposition)
		//	{
		//		case 6:
			if((g_Xposition >= 6) && (g_Xposition <= 13))
			{
				if((g_Yposition >= 6) && (g_Yposition <= 8))
				{
					KeyCode = 1;
				}
				else if((g_Yposition >= 9) && (g_Yposition <= 12))
				{
					KeyCode = 2;
				}
				else if((g_Yposition >= 13) && (g_Yposition <= 15))
				{
					KeyCode = 3;
				}
				else if((g_Yposition >= 16) && (g_Yposition <= 19))
				{
					KeyCode = 4;
				}
				else if((g_Yposition >= 20) && (g_Yposition <= 22))
				{
					KeyCode = 5;
				}
				else if((g_Yposition >= 23) && (g_Yposition <= 26))
				{
					KeyCode = 6;
				}
				else if((g_Yposition >= 27) && (g_Yposition <= 30))
				{
					KeyCode = 7;
				}
				else if((g_Yposition >= 31) && (g_Yposition <= 33))
				{
					KeyCode = 8;
				}
				else if((g_Yposition >= 34) && (g_Yposition <= 37))
				{
					KeyCode = 9;
				}
				else if((g_Yposition >= 38) && (g_Yposition <= 40))
				{
					KeyCode = 10;
				}
				else if((g_Yposition >= 41) && (g_Yposition <= 44))
				{
					KeyCode = 11;
				}
				else if((g_Yposition >= 45) && (g_Yposition <= 48))
				{
					KeyCode = 12;
				}
				else if((g_Yposition >= 49) && (g_Yposition <= 52))
				{
					KeyCode = 13;
				}
				else if((g_Yposition >= 53) && (g_Yposition <= 56))
				{
					KeyCode = 14;
				}
				else
				{
					KeyCode = 0;
				}
			}
			else if((g_Xposition >= 15) && (g_Xposition <= 23))
			{
				if((g_Yposition >= 6) && (g_Yposition <= 9))
				{
					KeyCode = 15;
				}
				else if((g_Yposition >= 10) && (g_Yposition <= 13))
				{
					KeyCode = 16;
				}
				else if((g_Yposition >= 14) && (g_Yposition <= 16))
				{
					KeyCode = 17;
				}
				else if((g_Yposition >= 17) && (g_Yposition <= 20))
				{
					KeyCode = 18;
				}
				else if((g_Yposition >= 21) && (g_Yposition <= 24))
				{
					KeyCode = 19;
				}
				else if((g_Yposition >= 25) && (g_Yposition <= 28))
				{
					KeyCode = 20;
				}
				else if((g_Yposition >= 29) && (g_Yposition <= 31))
				{
					KeyCode = 21;
				}
				else if((g_Yposition >= 32) && (g_Yposition <= 35))
				{
					KeyCode = 22;
				}
				else if((g_Yposition >= 36) && (g_Yposition <= 39))
				{
					KeyCode = 23;
				}
				else if((g_Yposition >= 40) && (g_Yposition <= 43))
				{
					KeyCode = 24;
				}
				else if((g_Yposition >= 44) && (g_Yposition <= 46))
				{
					KeyCode = 25;
				}
				else if((g_Yposition >= 47) && (g_Yposition <= 50))
				{
					KeyCode = 26;
				}
				else if((g_Yposition >= 51) && (g_Yposition <= 54))
				{
					KeyCode = 27;
				}
				else if((g_Yposition >= 55) && (g_Yposition <= 56))
				{
					KeyCode = 28;
				}
				else
				{
					KeyCode = 0;
				}				
			}
			else if((g_Xposition >= 25) && (g_Xposition <= 33))
			{
				if((g_Yposition >= 6) && (g_Yposition <= 10))
				{
					KeyCode = 29;
				}
				else if((g_Yposition >= 11) && (g_Yposition <= 14))
				{
					KeyCode = 30;
				}
				else if((g_Yposition >= 15) && (g_Yposition <= 17))
				{
					KeyCode = 31;
				}
				else if((g_Yposition >= 18) && (g_Yposition <= 21))
				{
					KeyCode = 32;
				}
				else if((g_Yposition >= 22) && (g_Yposition <= 25))
				{
					KeyCode = 33;
				}
				else if((g_Yposition >= 26) && (g_Yposition <= 29))
				{
					KeyCode = 34;
				}
				else if((g_Yposition >= 30) && (g_Yposition <= 32))
				{
					KeyCode = 35;
				}
				else if((g_Yposition >= 33) && (g_Yposition <= 36))
				{
					KeyCode = 36;
				}
				else if((g_Yposition >= 37) && (g_Yposition <= 40))
				{
					KeyCode = 37;
				}
				else if((g_Yposition >= 41) && (g_Yposition <= 43))
				{
					KeyCode = 38;
				}
				else if((g_Yposition >= 44) && (g_Yposition <= 47))
				{
					KeyCode = 39;
				}
				else if((g_Yposition >= 48) && (g_Yposition <= 51))
				{
					KeyCode = 40;
				}
				else if((g_Yposition >= 52) && (g_Yposition <= 56))
				{
					KeyCode = 41;
				}
				else
				{
					KeyCode = 0;
				}				
			}
			else if((g_Xposition >= 34) && (g_Xposition <= 43))
			{
				if((g_Yposition >= 6) && (g_Yposition <= 12))
				{
					KeyCode = 42;
				}
				else if((g_Yposition >= 13) && (g_Yposition <= 16))
				{
					KeyCode = 43;
				}
				else if((g_Yposition >= 17) && (g_Yposition <= 20))
				{
					KeyCode = 44;
				}
				else if((g_Yposition >= 21) && (g_Yposition <= 24))
				{
					KeyCode = 45;
				}
				else if((g_Yposition >= 25) && (g_Yposition <= 27))
				{
					KeyCode = 46;
				}
				else if((g_Yposition >= 28) && (g_Yposition <= 31))
				{
					KeyCode = 47;
				}
				else if((g_Yposition >= 32) && (g_Yposition <= 35))
				{
					KeyCode = 48;
				}
				else if((g_Yposition >= 36) && (g_Yposition <= 39))
				{
					KeyCode = 49;
				}
				else if((g_Yposition >= 40) && (g_Yposition <= 42))
				{
					KeyCode = 50;
				}
				else if((g_Yposition >= 43) && (g_Yposition <= 46))
				{
					KeyCode = 51;
				}
				else if((g_Yposition >= 47) && (g_Yposition <= 50))
				{
					KeyCode = 52;
				}
				else if((g_Yposition >= 51) && (g_Yposition <= 54))
				{
					KeyCode = 53;
				}
				else if((g_Yposition >= 55) && (g_Yposition <= 56))
				{
					KeyCode = 54;
				}
				else
				{
					KeyCode = 0;
				}				
			}		
			else if((g_Xposition >= 45) && (g_Xposition <= 51))
			{
				if((g_Yposition >= 6) && (g_Yposition <= 9))
				{
					KeyCode = 55;
				}
				else if((g_Yposition >= 13) && (g_Yposition <= 18))
				{
					KeyCode = 56;
				}
				else if((g_Yposition >= 19) && (g_Yposition <= 45))
				{
					KeyCode = 57;
				}
				else if((g_Yposition >= 46) && (g_Yposition <= 48))
				{
					KeyCode = 58;
				}
				else if((g_Yposition >= 49) && (g_Yposition <= 51))
				{
					KeyCode = 59;
				}
				else if((g_Yposition >= 52) && (g_Yposition <= 56))
				{
					KeyCode = 60;
				}
				else
				{
					KeyCode = 0;
				}				
			}
			else
			{
				KeyCode = 0;
			}						
		}
		*P_Watchdog_Clear=0x0001;
  }
}

//void OutputData(unsigned int tmp_XPosition[5],unsigned int tmp_YPosition[5])

void OutputData(unsigned int tmp_Xp,unsigned int tmp_Yp)
{
  int i;
  unsigned int tmp_X[4],tmp_Y[4];
//  unsigned int tmp_Xp,tmp_Yp;
  //unsigned int tmp_Xposition,tmp_Yposition;
  /*for(i=0,tmp_Xposition=0;i<5;i++)
  {
    tmp_Xposition+=tmp_XPosition[i];
  }
  tmp_Xposition/=5;
  for(i=0,tmp_Yposition=0;i<5;i++)
  {
    tmp_Yposition+=tmp_YPosition[i];
  }
  tmp_Yposition/=5; */   
  /*tmp_Xp=tmp_Xposition/4.0/1024.0*10000;
  tmp_Yp=tmp_Yposition/4.0/1024.0*10000;
  */
//  tmp_Xp=tmp_XPosition[1];///4.0/1024.0*10000;
 // tmp_Yp=tmp_YPosition[1];///4.0/1024.0*10000;
  for(i=0;i<4;i++)
  {
    tmp_X[i]=tmp_Xp%10;
    tmp_Xp/=10;
  }
  for(i=0;i<4;i++)
  {
    tmp_Y[i]=tmp_Yp%10;
    tmp_Yp/=10;
  } 
  for(i=0;i<4;i++)
  {


    sendData_7219(1+i,tmp_X[i]);
  }
  for(i=0;i<4;i++)
  {
    sendData_7219(5+i,tmp_Y[i]);
  }
    
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -