📄 touch.c
字号:
#ifndef TOUCH_C
#define TOUCH_C
#include "2410addr.h"
#include "Def.h"
#include "Gui.h"
#include "Dma.h"
int XPosition=0;
int YPosition=0;
void __irq Down(void)
{
int Pt[5];
int i;
rINTMSK|=0x80000000;
rINTSUBMSK|=0x00000200;
rADCTSC=0<<7|1<<6|1<<5|0<<4|1<<2|1;
for(i=0;i<5;i++) //5 times
{
rADCCON|=0x1; // Start Y-position conversion
while(rADCCON & 0x1); // Check if Enable_start is low
while(!(0x8000&rADCCON)); // Check ECFLG
Pt[i]=(0x3ff&rADCDAT0);
}
XPosition=(Pt[0]+Pt[1]+Pt[2]+Pt[3]+Pt[4])/5;
//rADCCON|=0x1;
//while(!(0x8000&rADCCON));
//XPosition=0x03ff&rADCDAT0;
XPosition=(XPosition)*1.04-133.3;
rADCTSC=1<<7|0<<6|0<<5|1<<4|1<<2|2;
for(i=0;i<5;i++) //5 times
{
rADCCON|=0x1; // Start Y-position conversion
while(rADCCON & 0x1); // Check if Enable_start is low
while(!(0x8000&rADCCON)); // Check ECFLG
Pt[i]=(0x3ff&rADCDAT1);
}
YPosition=(Pt[0]+Pt[1]+Pt[2]+Pt[3]+Pt[4])/5;//求一个平均值
//YPosition=0x03ff&rADCDAT1;
YPosition=YPosition*(0.79)-657.3;
YPosition=-YPosition;
rADCTSC=1<<7|1<<6|0<<5|1<<4|0<<3|0<<2|3;
//Pen_Color=Color_Red;
rSUBSRCPND|=(1<<9);
//rSUBSRCPND|=(1<<10);
rSRCPND|=(1<<31);
rINTPND|=(1<<31);
rINTSUBMSK&=~(1<<9);
rINTMSK&=~(1<<31);
}
void TouchDriver(void)
{
rGPGCON|=0xff000000;
rADCCON=1<<14|49<<6|0<<2|0<<1;
rADCDAT0=0<<15|1<<14|3<<12;
rADCDAT1=0<<15|1<<14|3<<12;
rADCTSC=1<<7|1<<6|0<<5|(1<<4)|0<<3|0<<2|3;
pISR_ADC=(unsigned)Down;
rINTSUBMSK&=~(1<<9);
rINTMSK&=~(1<<31);
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -