Как бы тема избита уже, проблем особых нет. Ну например:
http://vakula_sergio.io.ua/s72433Ну а я вот так делал (для AVR):
Код:
// подключение тачскрина
#define Y_minus PORTA.6
#define Y_plus PORTA.4
#define X_minus PORTA.7
#define X_plus PORTA.5
....
void TouchScan (void) {
push = 0;
DDRA = 0b10100000; // X_minus, X_plus на выход, сажаем Х пленку на землю
PORTA = 0b01011111; // остальные выводы как входы с подтяжкой
delay_ms(1);
if (read_adc(6) < 100) { // если есть нажатие ( проверяем на 0 вывод Y- )
push = 1;
press_count++;
if (press_count > 1) {
press = 1;
}
PORTA = 0b01111111; // cчитываем X координату, X_minus на землю, X_plus на +5 вольт
delay_ms(1);
x = abs((int) (232 - 0.276*read_adc(4)));
// записываем значения АЦП по 2-м точкам
// сопоставляем координаты
// и через уравнение прямой по 2-м точкам находим промежуточные значения нажатия
// x = 232 - 0.276*ADC
// y = 0.25*ADC - 67.5
DDRA = 0b01011111; // cчитываем Y координату, Y_minus, Y_plus на выход
PORTA = 0b10111111; // Y_minus на землю, Y_plus на +5 вольт
delay_ms(1);
y = abs((int) (0.25*read_adc(5)-67.5));
}
else {
press = 0;
press_count = 0;
}
}