romazan писал(а):тут на днях выманил у мужика в ремонтном отделе модуль дисплея от китайской нокии n95, в модуле есть: сам дисплей, тач и микруха для ТАЧа UH7843. Вот думаю как это дело подцепить к 128 меге
А что там ? цепляешь к SPI и все.
Вот и вся работа с *7843
#define Touchscreen_busy() gpio_get_pin_value(TOUCHSCREEN_BUSY_PIN)
#define Touchscreen_PenReq() (!gpio_get_pin_value(TOUCHSCREEN_IRQ_PIN))
int Read_Touchscreen()
{
unsigned short tdata;
long adc_value_x, adc_value_y;
if(!Touchscreen_PenReq())
{
screen_touching = false;
return false;
}
spi_selectChip(TOUCHSCREEN_SPI, TOUCHSCREEN_SPI_NPCS);
spi_write(TOUCHSCREEN_SPI, 0x90);
while(Touchscreen_busy()) ;
spi_write(TOUCHSCREEN_SPI, 0x00);
spi_read(TOUCHSCREEN_SPI, &tdata);
adc_value_x = tdata;
spi_write(TOUCHSCREEN_SPI, 0x00);
spi_read(TOUCHSCREEN_SPI, &tdata);
adc_value_x = (adc_value_x << 8 ) | tdata;
//////////////////////////////////
spi_write(TOUCHSCREEN_SPI, 0xD0);
while(Touchscreen_busy()) ;
spi_write(TOUCHSCREEN_SPI, 0x00);
spi_read(TOUCHSCREEN_SPI, &tdata);
adc_value_y = tdata;
spi_write(TOUCHSCREEN_SPI, 0x00);
spi_read(TOUCHSCREEN_SPI, &tdata);
adc_value_y = (adc_value_y << 8 ) | tdata;
spi_unselectChip(TOUCHSCREEN_SPI, TOUCHSCREEN_SPI_NPCS);
////////////////////////
screen_touching = true;
screen_x = SCREEN_MAX_X * (adc_value_x - MIN_ADC_X) / (MAX_ADC_X - MIN_ADC_X);
screen_y = SCREEN_MAX_Y * (adc_value_y - MIN_ADC_Y) / (MAX_ADC_Y - MIN_ADC_Y);
return true;
}