Nach dem ich letztens es dann doch geschafft habe, einen Demo-Sketch auf den Leonardo zu laden, wollte ich dieses nun auch mit dem Micro Pro schaffen. Denn beim Leonardo komme ich ohne WingShield o.ä. nicht mehr an freie Pins.
Ich nutze das Itead 2.8" Touch TFT-GLCD mit der UTFT Libary.
http://imall.iteadstudio.com/im120417020.html
Ich habe mich bereits mit der Bedienungsanleitung der UTFT Libary auseinander gesetzt. Die PinOuts konnte ich für das GLCD und Touch bereits ausfindig machen (hoffe das ist richtig)
2 Pins wurden vom TFT Shield nicht herausgeführt. Einmal Reset als Pin. Muss ich diesen nun mit RST auf dem Arduino verbinden oder einen Pin opfern? Zum weiteren wird CS für die Touch Funktion nicht herausgeführt. Ich habe irgendwo in einem engl. Forum gelesen, dass es bereits auf dem Shield gegen GND verbunden ist und somit nicht zugewiesen werden muss (Quelle gerade nicht zur Hand).
Die SD-Karten Funktion habe ich komplett entfernt, soll heißen, ich habe den SD-Slot unterhalb des Shields ausgelötet, da ich dieses nicht brauche und somit auch ohne Adapter auf dem Uno wieder passt.
Das eigentliche Problem besteht nun darin, dass ich nicht alle Pins mit der Initialisierung deklarieren kann. Undzwar die Datenleitungen vom TFT Shield (D8 - D15) die an den Pins D0 - D7 herausgeführt werden.
Hier mein Sketch, an dem ich gerade arbeite. Es handelt sich hier um das UTFT Beispiel "UTouch_QuickDraw"
/* MICRO PRO
* NC -o D1(TX0) RAW o- NC
* NC -o D0(RX1) GND o- TFT_GND
* NC -o GND RST o- NC
* NC -o GND VCC o- TFT_5V
* NC -o D2(SDA) A3 o- TFT_RS
* NC -o D3#(SCL) A2 o- TFT_WR
* NC -o D4/A6 A1 o- TFT_CS
* NC -o D5# A0 o- NC
* T_CLK -o D6#/A7 (SCLK)15 o- NC
* T_DIN -o D7 (MISO)14 o- NC
* T_DOUT -o D8/A8 (MOSI)16 o- NC
* T_IRQ -o D9#/A9 10# o- NC
*
* # = PWM
*
* Nicht belegte Pins:
* A4, A5, D11#, D12/A10, D13# */
#include <UTFT.h>
#include <UTouch.h>
// UTFT
#define TFT_RS 21 // Register Select
#define TFT_WR 20 // Write
#define TFT_CS 19 // Chip Select
/* TFT_RST wird nicht vom Shield herausgeführt
* Zugewiesender nicht belegter Pin -> A4 */
#define TFT_RST A4 // Reset
#define MODEL ITDB28 // Model Chip Display
UTFT glcd(MODEL, TFT_RS, TFT_WR, TFT_CS, TFT_RST);
// UTouch
#define T_CLK 6 // Clock (D_CLK)
/* T_CS wird nicht vom Shield herausgeführt
* Zugewiesender nicht belegter Pin -> A5 */
#define T_CS A5 // Chip Select (D_CS)
#define T_DIN 7 // Data Input (D_DIN)
#define T_DOUT 8 // Data Output (D_OUT)
#define T_IRQ 9 // IRQ (DPenirq)
UTouch touch(T_CLK, T_CS, T_DIN, T_DOUT, T_IRQ);
void setup()
{
glcd.InitLCD();
glcd.clrScr();
touch.InitTouch();
touch.setPrecision(PREC_MEDIUM);
}
void loop()
{
long x, y;
while(touch.dataAvailable() == true)
{
touch.read();
x = touch.getX();
y = touch.getY();
if(x != -1 && y != -1) glcd.drawPixel(x, y);
}
}