📄 touch.c
字号:
#include "touch.h"
#include "custom.h"
//读取一次X,Y值
//读到的X,Y坐标值必须都大于100
//成功返回1,不成功返回0
//读数限制在100~3800之间.
unsigned int X,Y;
void start_spi(void)
{
//TCLK_SET(0);
//TCS_SET(1);
//TDIN_SET(1);
//sTCLK_SET(1);
//SPI_Flash_SendByte(1);
TCS_SET(0);
}
u8 read_once(void)
{
unsigned int a,b;
start_spi();//启动SPI
delay_u(3);
SPI_Flash_SendByte(SPI1,CMD_RDY); // FLASH操作基本函数,发送一个字节
delay_u(3);
a=SPI_Flash_ReadByte(SPI1,0); //flash操作基本函数,读一个字节
a=a<<8;
a|=SPI_Flash_ReadByte(SPI1,0); //flash操作基本函数,读一个字节
a>>=3;
X=a;
SPI_Flash_SendByte(SPI1,CMD_RDX); // FLASH操作基本函数,发送一个字节
delay_u(3);
b=SPI_Flash_ReadByte(SPI1,0); //flash操作基本函数,读一个字节
b=b<<8;
b|=SPI_Flash_ReadByte(SPI1,0); //flash操作基本函数,读一个字节
b>>=3;
Y=b;
TCS_SET(1);
if(X>100&&Y>100&&X<4000&&Y<4000)
{
return 1;//读数成功(范围限制)
}
else{ return 0; //读数失败
} //=1
}
void Read_Ads7843(void)
{
uint dataBuff[2][10];
uchar a = 1;
uchar t = 0;
unsigned long j,k;
while(a && !PEN)
{
if(read_once() == 1)
{
dataBuff[0][t] = X;
dataBuff[1][t] = Y;
t++;
if(t == 10)
a = 0;
}
else
{}
}
if(10 == t)
{
for(t = 0;t < 10;t++)
{
j += dataBuff[0][t];
k += dataBuff[1][t];
}
X = j / 10;
Y = k / 10;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -