板子用的是msp430f149,驱动xpt2046时,触屏上点不同点,ad采样值不规律。水平和垂直方向滑动,增加到9000多时又会变为1000多。以下是驱动,请帮忙看看,看是不是驱动的问题,我都找了好几天了。
//向TPIC写入1byte数据
void TP_Write_Byte(unsigned char data)
{
unsigned char temp,i ;
temp = data ;
for(i=0;i<8;i++)
{
if(temp&0x80) SET_PMOSI ;
else CLR_PMOSI ;
temp <<=1 ;
CLR_PSCK ;
// __delay_cycles(3) ;
SET_PSCK ;
// __delay_cycles(3) ;
}
}
//从TPIC读取ADC值
unsigned int TP_Read_AD(unsigned char CMD)
{
unsigned char i ;
unsigned int rec = 0 ;
CLR_PSCK ;
CLR_TP_CS ;
TP_Write_Byte(CMD) ; // 发送命令字
// SET_PSCK ;
// __delay_cycles(3) ;
// CLR_PSCK ;
// __delay_cycles(3) ;
// SET_PSCK ;
// __delay_cycles(3) ;
// CLR_PSCK ;
// __delay_cycles(3) ;
// SET_PSCK ;
// __delay_cycles(3) ;
// CLR_PSCK ;
// __delay_cycles(20) ;
__delay_cycles(1) ; // 等待响应
for(i=0;i<12;i++)
{
rec <<= 1 ;
SET_PSCK ;
// __delay_cycles(3) ;
CLR_PSCK ;
// __delay_cycles(3) ;
if(PMISO_IS_SET) rec++ ;
}
// rec >>= 4 ; //高12位有效
SET_TP_CS ;
return(rec) ;
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>