// Direkte Analogwertabfrage beim "TFT-Shield 2.8" R3"
// (kann sein, dass das falsch ist und die vom LMS241GF31 stimmt)
// Signal Arduino ATmegaX8P Funkt. Ruhe X mess. Y mess.
// X- LCD_WR A1 24 PC1 ADC1 Z L Z+ADC
// Y- LCD_D6 ~6 10 PD6 - L Z L
// X+ LCD_D7 7 11 PD7 PCINT23 Hi-Z H Z
// Y+ LCD_RS A2 25 PC2 ADC2 L Z+ADC H
// X+ = Elektrode rechts, Y+ = Elektrode unten
// 161118: Beim Display „http://www.mcufriend.com 2.4″ tftlcd shield(9341)“ (Michael Schulze) (TouchScreen4.cpp)
// X- LCD_D7 7 11 PD7 PCINT23 Hi-Z L Z
// Y- LCD_RS A2 25 PC2 ADC2 L Z+ADC L
// X+ LCD_WR A1 24 PC1 ADC1 Z H Z+ADC
// Y+ LCD_D6 ~6 10 PD6 - L Z H
// 160810: Beim „2.4″TFT LCD SHIELD“ ist es ganz anders verteilt:
// X- LCD_D0 8 14 PB0 PCINT0 Hi-Z L Z
// Y- LCD_CS A3 26 PC3 ADC3 L Z+ADC L
// X+ LCD_RS A2 25 PC2 ADC2 Z H Z+ADC
// Y+ LCD_D1 ~9 15 PB1 PCINT1 L Z H
// Ungünstig erscheint hier, dass CS beteiligt ist.
// 160924: Beim Display „LMS241GF31“ ist es so ähnlich wie oben aus
// X- LCD_D7 7 11 PD7 PCINT23 Hi-Z L Z
// Y- LCD_RS A2 25 PC2 ADC2 L Z+ADC L
// X+ LCD_WR A1 24 PC1 ADC1 Z H Z+ADC
// Y+ LCD_D6 ~6 10 PD6 - L Z H
// Die Ausrichtung des LCDs ist stets in „natürlicher“ Form:
// Hochkant mit den Flachkabeln unten. Für Handys eben.
#pragma once
#include <stdint.h>
class TouchScreen {
public:
void Init();
bool isTouching();
bool wait(int ms); // -1 = bis Touch, -2 = bis sleep oder Touch
uint16_t readTouch(uint8_t b);
enum{
#ifdef SHIELD_ITDB02 // Frank Philippczyks erstes Shield mit 75 mm Diagonale
// TSC2046 ~ ADS7843
TOUCH_X=0xD0, // Codes für den ADS7843
TOUCH_Y=0x90,
#else // Alle anderen Boards haben keinen Chip
TOUCH_X,
TOUCH_Y,
#endif
TOUCH_B=10, // Bits des vzl. A/D-Wandlers (Wertebereich hier 0..1023)
};
};
Detected encoding: UTF-8 | 0
|