hi,
i am interfacing TSC2046 with stm32, but i haven't get proper x, y & z values. (TFT resolution is 1024*600)
also check TFT X Y Z waveform, interrupt & spi comm everything is correct but still i haven't get proper X Y Z value.
for X- 0XD0 & Y- 0X90
////SPI SEND DATA
uint16_t TSC2046_SendCommand(uint8_t cmd)
{
uint8_t spiBuf[3] = {0,0,0};
uint16_t return16=0;
uint16_t vall;
_TS_CS_ENBALE;
spiBuf[0] = cmd;
HAL_SPI_Transmit(&tsSPIhandle, spiBuf, 1, 10);
//Wait for response (3 ms)
HAL_Delay(3);
if(HAL_SPI_Receive(&tsSPIhandle, &spiBuf[1], 2, 10) == HAL_OK)
return16 = (spiBuf[1]<<4) + (spiBuf[2]>>4);
else return16 = 0;
_TS_CS_DISABLE;
return return16;
}
////GET X Y Z VALUES
uint16_t TSC2046_getRaw_X(void)
{
return TSC2046_SendCommand(0XD0);
}
//ii. get y-axis raw touch 12-bit value
uint16_t TSC2046_getRaw_Y(void)
{
return TSC2046_SendCommand(0X90);
}
//iii. get z-axis raw touch 12-bit value
uint16_t TSC2046_getRaw_Z(void)
{
return TSC2046_SendCommand(0XB0);
}
while (1)
{
//INTERRUPT//
if(HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_8)==0)
{
// data_z= TSC2046_getRaw_Z();
data_x= TSC2046_getRaw_X();
data_y= TSC2046_getRaw_Y();
}
}