ST7735 Graphics Display Library

  • 1
  • 2
  • 3
  • Page 2 of 3
Harry
Moderator
Avatar
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2136
Registered: 03 / 2003
Subject:

Re: ST7735 Graphics Display Library

 · 
Posted: 26.07.2024 - 14:43  ·  #9
Hallo Alois,

wieso nehmt ihr kein Display mit FT8xx-Controller? Die sind so schnell, so schnell könnt ihr nicht berechnen. In denen könnte man sogar Bitmaps mit einem Horizont ablegen und nur die Darstellung initiieren - ja der Controller kann intern Bitmaps drehen. Natürlich kann man auch Display-interne Zeichenroutinen benutzen. Das geht übrigens auch beim RA8875.

Aber ich glaube, daß eine 80 Pixel lange Linie neben NMEA und SD-Karte auch auf einem normalen Grafikdisplay in Farbe möglich sind ..... mit einem XMega ;).
Die Linie berechnen geht sehr schnell, die Ausgabe der alten Linie (zum löschen) und der neuen sind auch recht schnell erledigt. Laß mich mal überlegen, ob ich ein Farbdisplay da hab, mit dem ich das testen könnte .....

Wie klein ist klein?

Du könntest dem Display auch einen eigenen Controller spendieren.

Gruss
Harry
sine_wave
Benutzer
Avatar
Gender: n/a
Age: 54
Posts: 19
Registered: 10 / 2022
Subject:

Re: ST7735 Graphics Display Library

 · 
Posted: 26.07.2024 - 16:17  ·  #10
Hallo Harry,

danke für deine Tipps. Den FT811 haben wir tatsächlich in einem anderen System mit 800x480px im Einsatz. Die Display List ist schon ideal. Unser Kunde hat uns das 0,96 inch Display von Waveshare vorgegeben, das mit dem ST7735 ausgestattet ist.

Es spricht übrigens noch ein Argument für einen eigenen µC für das Display, weil die µSD-Card über den einzigen SPI des verbauten mega128 läuft. Wir brauchen extra einen Hardware-SPI für das Display. Schade, dass es keinen Dual-Core AVR gibt ...

Gruß
Alois
Harry
Moderator
Avatar
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2136
Registered: 03 / 2003
Subject:

Re: ST7735 Graphics Display Library

 · 
Posted: 26.07.2024 - 20:32  ·  #11
Wieso kein XMega? Ich betreibe einige mit 64MHz. Offiziell zulässig sind 48MHz und der hätte mehrere SPI.

Ich hab sowas schon öfter gemacht, also Display mit eigenem uC und Ansteuerung via TWI/I²C. Alle benötigten Zeichenoperationen sind im Display-uC abgebildet und teilweise stark vereinfacht. In deinem Fall wäre der Horizont 3 Byte lang: Byte #1 für die Funktion "Horizont" und Byte #2 & 3 als Integer für den Winkel. Den Rest macht das Display und der Haupt-uC hat Zeit für NMEA und SD-Karte.

Übrigens dieses Display ist auch bei Sonne gut ablesbar: topic.php?t=4138
sine_wave
Benutzer
Avatar
Gender: n/a
Age: 54
Posts: 19
Registered: 10 / 2022
Subject:

Re: ST7735 Graphics Display Library

 · 
Posted: 27.07.2024 - 11:50  ·  #12
Tatsächlich entwickle ich jetzt mal die Grafik-Applikation separat und schaue dann, wie hoch die Auslastung ist. Wenn es reicht, könnte die Gesamtapplikation in einen xmega. Wenn nicht, werden es halt zwei µC.

Ich dachte, die xmega gehen bis 24 MHz?
Harry
Moderator
Avatar
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2136
Registered: 03 / 2003
Subject:

Re: ST7735 Graphics Display Library

 · 
Posted: 27.07.2024 - 14:18  ·  #13
mitnichten (siehe PLLmul):
Code
Device = xmega128A4U, VCC=3.3;

Import SysTick;

From System Import;

Define
  OSCtype        = int32MHz,
                   PLLmul=8,       // 1=8, 2=16, 3=24, 4=32, 5=40, 6=48, 7=56, 8=64MHz
                   prescB=1,
                   prescC=1,
                   overdrive;
  SysTick        = 10;             {msec}
  StackSize      = $0200, iData;
  FrameSize      = $0200, iData;
sine_wave
Benutzer
Avatar
Gender: n/a
Age: 54
Posts: 19
Registered: 10 / 2022
Subject:

Re: ST7735 Graphics Display Library

 · 
Posted: 27.07.2024 - 14:58  ·  #14
Danke Harry, werd den xmega ausprobieren. Ist sogar günstig vom Preis.
Harry
Moderator
Avatar
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2136
Registered: 03 / 2003
Subject:

Re: ST7735 Graphics Display Library

 · 
Posted: 30.07.2024 - 11:36  ·  #15
Hallo Alois,

ich hab das mal mit einem ST7735 160x128 Pixel auf einem XMega128A4U @ 64MHz ausprobiert - siehe Anhang - mit diesem Code:
Code

Procedure Horizont;
  Var PX,PY           : Integer;
      PX1,PX2,PY1,PY2 : Integer;
      PAng   : Integer;
  Begin
    gSetTextColor(Byte(clYellow3));
    Loop
      For PAng:=-45 to 45 do
        RotatePntI(PAng,45,0,PX,PY);
        PX1:=79+PX;
        PY1:=63+PY;
        PX2:=79-PX;
        PY2:=63-PY;
        gDrawLine(PX1,PY1,PX2,PY2,$FF,Byte(clWhite));
        gDrawString(74,50,1,1,TxtRot0,IntToStr(PAng:3));
        mDelay(2);
        gDrawLine(PX1,PY1,PX2,PY2,$00,Byte(clWhite));
        EndFor;
      For PAng:=44 downto -44 do
        RotatePntI(PAng,45,0,PX,PY);
        PX1:=79+PX;
        PY1:=63+PY;
        PX2:=79-PX;
        PY2:=63-PY;
        gDrawLine(PX1,PY1,PX2,PY2,$FF,Byte(clWhite));
        gDrawString(74,50,1,1,TxtRot0,IntToStr(PAng:3));
        mDelay(2);
        gDrawLine(PX1,PY1,PX2,PY2,$00,Byte(clWhite));
        EndFor;
    EndLoop;
  End Horizont;

Läßt sich natürlich noch deutlich optimieren, aber dazu müßte man das gesamte Programm kennen.

Gruss
Harry

PS: Auf meinem Notebook ist das Video anschaubar, auf meinem Tablet grausam. Wie ist das bei dir?
You must be logged in or your permissions are to low to see this Attachment(s).
sine_wave
Benutzer
Avatar
Gender: n/a
Age: 54
Posts: 19
Registered: 10 / 2022
Subject:

Re: ST7735 Graphics Display Library

 · 
Posted: 30.07.2024 - 14:02  ·  #16
Hallo Harry,

das sieht sehr flüssig aus auf dem Video. Ich probiere es mit dem Xmega. Btw, die Funktion RotatePntI() - hast du da Table-Lookup verwendet, oder?

/
Alois
  • 1
  • 2
  • 3
  • Page 2 of 3
Selected quotes for multi-quoting:   0

Registered users in this topic

Currently no registered users in this section

The statistic shows who was online during the last 5 minutes. Updated every 90 seconds.
MySQL Queries: 15 · Cache Hits: 14   138   152 · Page-Gen-Time: 0.025559s · Memory Usage: 2 MB · GZIP: on · Viewport: SMXL-HiDPI