现在正在玩800x480的TFT液晶,为什么触摸屏的AD采样总是在一定范围内呢?只有触摸到那一定的范围就有反应,不在那范围内疚没反应。
有反应是不是就不是SPI的错。
uint Write_Read_CharTo7843(uchar ControlByte) //SPI写数据
{
uchar i;
uint Coordinate;
GPIOPinWrite(A_PORT,0x02,0x00); //CS=0;
GPIOPinWrite(A_PORT,0x01,0x00); //CLK=0
for(i=8;i>0;i--)
{
GPIOPinWrite(A_PORT,0x04,(((ControlByte>>(i-1))&0x01)<<2));
GPIOPinWrite(A_PORT,0x01,0x00); //CLK=0
GPIOPinWrite(A_PORT,0x01,0x01); //CLK=1
}
delaynms(10);
for(i=12;i>0;i--)
{
GPIOPinWrite(A_PORT,0x01,0x00); //DCLK=0;
GPIOPinWrite(A_PORT,0x01,0x01); //DCLK=1; //上降沿有效
Coordinate<<=1;
if(GPIOPinRead(A_PORT,0x10)==0x10)
{
Coordinate|=0x0001;
}
}
GPIOPinWrite(A_PORT,0x02,0x02); //CS=1;
return(Coordinate);
}
void AD7843(void)
{
TP_X=Write_Read_CharTo7843(0x90);
// delaynms(3);
TP_Y=Write_Read_CharTo7843(0xd0);
// delaynms(3);
}
此帖出自
小平头技术问答
一周热门 更多>