Forum: Projekte & Code 2.4" / 3.2" Touch und TFT lib


von Stephan K. (stephan_k)


Angehängte Dateien:

Lesenswert?

Moin,
ich hab im laufe meines derzeiten Projekts mal die TFT Library von 
Henning Karlsen fuer Arduino umgebaut auf C (wer braucht schon die 
Arduino libs?).

Ich weiss, dass mein Programierstyle zu wuenschen uebrig laesst, aber 
ich komm damit klar.
Im Source ist ein Beispiel (GUI) drin, wie man das ganze nutzen kann.

Waere schoen, wenn ich ein Feedback bekommen wuerde. Aber bitte nur 
Konstruktives und keine unqualifizierten Bemerkungen, dass ein Ire 
schlechte Rechtschreibung hat, oder so einen Muell.

Die Lib laueft mit verschiedenen Display Typen und Arduino Boards, 
laesst sich aber auch auf andere Megas umstricken.

Infos finden sich auf der Webseite von Henning Karlsen.
http://www.henningkarlsen.com/electronics/library.php?id=51

Wer Bock hat, kann ja mal den Rest Arduino Hype entfernen. Ausserdem 
fehlen fuer ein vernuenftiges Gui noch diverse Elemente, wie Listen, 
Eingabefelder, usw.

Ansonsten viel Spass damit.

P.S.: Sollten Fragen aufkommen, bin ich grade zufaellig im Urlaub :-)

von frage (Gast)


Lesenswert?

Auf welchen Display controller bzw. Welches display bezieht sich diese 
lib? Ebay tfts mit hxwhatever Chips? Welche ansteuerung spi 16bit 
parallel? Für avr? Bitte etwas präzisieren, hätte Interesse!!

von Stephan K. (stephan_k)


Lesenswert?

Steht alles bei Henning auf der Webseite. Die lib unterstuetzt folgende 
Controller:
HX8340-B(N) - Serial
HX8340-B(T) - 8bit
HX8347-A    - 16bit
ILI9325C    - 8bit
ILI9325D    - 8/16bit
ILI9327     - 16bit
PCF8833     - Serial
SSD1289     - 16bit
ST7735      - Serial

Die lib funktioniert mit AVR. Fuer Microchip muesste man die io.c 
aendern, oder die funktionen, die von da verwendet werden austauschen.

von Stephan K. (stephan_k)


Lesenswert?

Ich seh grade, dass man fuer microchip noch die Hardware-Zuordnungen in 
der tft.h aendern muesste. Fuer PIC32 muesste das dann so aussehen:
1
// *** Hardwarespecific defines ***
2
#define cbi(reg, bitmask) (*(reg + 1)) = bitmask
3
#define sbi(reg, bitmask) (*(reg + 2)) = bitmask
4
#define pulse_high(reg, bitmask) sbi(reg, bitmask); cbi(reg, bitmask);
5
#define pulse_low(reg, bitmask) cbi(reg, bitmask); sbi(reg, bitmask);
6
7
#define cport(port, data) port &= data
8
#define sport(port, data) port |= data
9
10
#define swap(type, i, j) {type t = i; i = j; j = t;}
11
12
#define fontbyte(x) cfont.font[x]  
13
14
#define PROGMEM
15
#define regtype volatile uint32_t
16
#define regsize uint16_t
17
#define bitmapdatatype unsigned short*

von frage (Gast)


Lesenswert?

sehr nett danke! auf dem Handy ging die Seite nicht deshalb nicht 
gesehen!
na dann ist die lib genau das was ich suche/brauche, vielen dank mfg

von Stephan K. (stephan_k)


Angehängte Dateien:

Lesenswert?

Und noch was vergessen (liegt am Alter) :-)
Im Anhang noch mehr fuer die Pic.

von Daniel S. (sany)


Lesenswert?

Hey,

Danke, genau das habe ich gesucht :-)

Leider stellt sich mir eine Frage... für welchen Atmega ist denn dein 
Code ausgerichtet?

Ich habe hier ein eigenes Board mit einem AtXmega128A1 und müsste die 
IO.c umschreiben, aber dafür müsste ich erstmal wissen was die bewirkt 
oder wofür gedacht ist?

die ersten DB0-7 hängen bei mir an einem kompletten Port
sowohl die letzten DB8-15 auch auf einem kompletten Port...



Danke für deine Rückinfo ;-)

Grüße,
Daniel

von RexKramer (Gast)


Lesenswert?

Hallo Stephan ,
die Gui ist prima , habe sie auf einem ATMEGA2560 mit dem SainSmart TFT 
Shield schnell zum laufen bekommen.
Das hat mir viel Arbeit erspart und ich brauch nicht in Arduino Tiefen 
hinabsteigen.
Danke.
Aber das Logo ... ;)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.