?? 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 + -