Forum: Projekte & Code 2.4" Display-Shield (SPFD5408, ST7783) an STM32


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von PD (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

vielleicht habt Ihr Interesse an meinem Projekt? Es gibt für den Arduino 
Uno ein 2.4" Display Shield, dieses Shield passt auch auf das STM32 
Nucleo Board (bspw. STM32F411). Nun habe ich Code zur Steuerung dieses 
Displays und Auswertung des Touchscreens für den STM32 entwickelt. Im 
aktuellen Stand sind ein paar Grafikfunktionen (Punkte, Linien, 
Rechtecke und Kreise zeichnen auch eine einfache Textausgabe) 
implementiert. Die Funktionen zur Abfrage des Touchscreens liefern den 
ADC-Wert für x und y Koordinate. Das ganze ist noch im Anfangsstadium 
und ist zunächst ein Projekt um daran zu lernen. Das Projekt habe ich 
mit Eclipse unter Ubuntu erstellt.

Vielleicht ist es ja auch für euch interessant.

Gruß, Peter

: Verschoben durch Admin
von PD (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

aktuell versuche ich den Druckpunkt des Touchscreens auszuwerten, dabei 
habe ich das Problem, das x, y Koordinaten erst nach einer gewissen Zeit 
sich auf eine Koordinate stabilisiert haben. Dieses Verhalten habe ich 
versucht in der angehängten Grafik darzustellen.

Meine Frage, wie kann ich den Verlauf der x, y Koordinaten auswerten um 
brauchbare Ergebnisse zu erhalten?

Gruß, Peter

von Uwe B. (derexponent)


Bewertung
0 lesenswert
nicht lesenswert
PD schrieb:
> Meine Frage, wie kann ich den Verlauf der x, y Koordinaten auswerten um
> brauchbare Ergebnisse zu erhalten?

da gibts mehrere Möglichkeiten die alle auf irgendeine Art "Filter"
hinauslaufen

ein Weg wäre z.B. den Messwert nur als gültig Anzusehen, wenn
er seit der letzten Messung innerhalb von z.B. 10 Pixel liegt

also z.B:

[pseudocode]

void checkTouch(void) {
  static int xold,xnew;
  static int yold,ynew;

  // messung
  xnew=GetXpos();
  ynew=GetYpos();

  // vergleich
  if((abs(xold-xnew)<10) && (abs(yold-ynew)<10))  {
    // koordinate ist gültig bei xnew,ynew
  }
  else {
    // koordinate ist ungültig...warte auf nächste messung
  }

  // werte speichern
  xold=xnew;
  yold=ynew;
}
[/pseudocode]

: Bearbeitet durch User
von PD (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Danke, das werde ich einmal versuchen!

von rogger (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Wie öffnet man das denn in eclipse, hab den workspace auf den ordner 
gemacht aber es kommt kein projekt zum öffnen?!

von PD (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Versuche das Projekt zu importieren.

Gruß Peter

von Matthias D. (Firma: ESRA) (madias)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,
nur als kurze Info:
habe das gleiche TFT am NucleoSTM32F103RB ausprobiert (über 
STM32-Arduino, wo ich den Nucleo Port gemacht habe) und die vorhandenen 
(mir bekannten) Libraries umgeschrieben.
Nur: den Touchscreen habe ich nie richtig zum Laufen gebracht, war immer 
zu ungenau. Liegt wohl auch daran, dass die Pins mehrfach verwendet 
werden. Bin jetzt komplett auf die ILI9341 Displays mit Touchscreen (2.4 
bzw. 2.6 zoll) umgestiegen. Vorteil:
a) weniger Verbindungen (über SPI)
b) Geschwindigkeit (verwende Treiber mit SPI-DMA)
c) Touchscreen hat einen eigenen Controllerchip
d) Preis auf Ali bzw. Ebay (um die 8 Euro)

LG
Matthias

von Roman (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hab die Library mal auf den STM32F0 umgeschrieben, das Display flackert 
leider nur, aber das heisst das da irgendwas schon geklappt hat. ;)
Sobald ich das fertig hab, könnte ich das Example mal hochladen.

Grüße

von Roman (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Eine Frage hätte ich noch: was ist das besagte CD in deinem Code? ist 
das RS auf dem Displayeingang?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.