Display 1,14 Zoll 135x240 Pixel Treiber ST7789V

    This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

    • Hast du noch ein anderes Quarz zur Auswahl außer 10MHz?

      Wenn du eins hast, dessen Frequenz du durch 1024 teilen kannst, ohne dass es Nachkommastellen gibt,
      dann hast du ein geeignetes Quarz gefunden. Der Quotient muss einen Wert haben kleiner 65536.

      Oder ein Quarz mit kleinerer Frequenz als 10MHz, das durch 512 geteilt einen ganzzahligen Wert ergibt kleiner als 65536.
      Das geht auch.

      Das 10MHz ergibt durch 1024 geteilt einen schrägen Wert, was automatisch die Uhr zu schnell oder zu langsam läufen lässt.
      Man könnte auch den 10MHz nehmen, müsste dann aber per Prescaler durch 64 teilen. Das ergäbe einen ganzzahligen Quotient.
      Der ist allerdings größer als die 65536 (16 Bit vom Timer 1). Die ISR würde dann 10x je Sekunde aufgerufen, das müsste man dann dürch einen Zähler in der ISR korrigieren und nur jedes 10. mal die Sekunden erhöhen.
    • Thomas1964 wrote:

      Der Timer1 läuft glaub ich nur mit Quartz oder ?.
      Glauben heißt: Nix wissen!

      Wenn du im Programm den Timer als Timer konfigzrierst und ein Prescaler setzt, wird der Takt vom Systemtakt abgeleitet.
      Das kann ein ext. Quart sein, aber auch ein interner Oszillator.


      Thomas1964 wrote:

      Ansonsten würde ja noch der interne RC Oszillator mit 8Mhz und Kalibrierung.
      Das ist eine ganz schlechte Idee. Der Oszillator ist sehr ungenau und Temoeraturabhängig und auch Spannungsabhängig.
      Ein Quarz ist die beste Lösung!

      Wenn du schon den 10MHz Quarz nehmen willst (es hätte ha auch geeignetere gegeben), musst du die ISR anpassen.
      Mit Prescaler 64 und Compare1a-Wert = 15625-1 ergäben sich genau 10 Hz Aufruf-Frequenz der ISR.

      Musst also in der ISR noch einen Zähler einbauen, und wenn der dann 10 hat, dann auf 0 setzen und die Sekunde +1
    • Thomas1964 wrote:

      Der Timer1 läuft glaub ich nur mit Quartz oder ?.
      Ansonsten würde ja noch der interne RC Oszillator mit 8Mhz und Kalibrierung.
      Timer1 hängt am Systemclock unabhängig wie der gemacht wird.
      Den internen besser nicht über 8,8 Mhz bringen wenn EEprom Befehle benützt werden. (Datenblatt)
      Hier lief einer problemlos mit 9,6 Mhz (leider ohne EEprom zu testen)
      Die Kalibrierung ist nicht fein genug eine Uhr über Tage brauchbar zu haben.
    • Hello there.
      I have serious issues with 240x240 ST7789, On xmega usually lcds working fine on spi and port mode, but not on mega2560 arduino board. I checked pins by oscilloscope looks like they work sometimes.
      Could anyone provide init table for this lcd? Im not sure where is the error anymore, spi or that init lcd registers or what. pls help
    • So ähnlich wie in der Zeitanzeige:
      z.B Stunden_Bahn1 =2 oder 17
      Bahn1 = "00" + Str(Stunden_Bahn1) ' Bahn1 wird "002" oder"0017"
      Bahn1 = Right(bahn1 , 2) ' Bahn1 wird "02" oder "17"
      Lcdat y1 , 2 , Bahn1 , White, Blue

      @Jackjack It seems all ouput goes (81) _Gwrite_DataMisc:
      Maybe its works to delete (82-99 and 103) and fill at 82...
      OUT spdr, R24
      Spi_read:
      sbis spsr, spif
      rjmp Spi_read

      The post was edited 1 time, last by Pluto25 ().

    • Hallo Pluto,

      habe das so geändert siehe code, alle Bahnen funktionieren außer Bahn1,
      da werden die Minuten an erster Stelle angezeigt.
      Weißt du wo der Fehler ist ?

      Source Code

      1. Bahn1 = "00" + Str(Stunden_Bahn1)
      2. Bahn1 = Right(Bahn1,2)
      3. Lcdat y1 , 2 ,Bahn1 , White, Blue ' Bahnabfahrtszeiten Bahn 1-6 max. 2 Zeichen
      4. Bahn2 = "00" + Str(Stunden_Bahn2)
      5. Bahn2 = Right(Bahn2,2)
      6. Lcdat y2 , 2 ,Bahn2 , White, Blue
      7. Bahn3 = "00" + Str(Stunden_Bahn3)
      8. Bahn3 = Right(Bahn3,2)
      9. Lcdat y3 , 2 ,Bahn3 , White, Blue
      10. Bahn4= "00" + Str(Stunden_Bahn4)
      11. Bahn4 = Right(Bahn4,2)
      12. Lcdat y4 , 2 ,Bahn4 , White, Blue
      13. Bahn5 = "00" + Str(Stunden_Bahn5)
      14. Bahn5 = Right(Bahn5,2)
      15. Lcdat y5 , 2 ,Bahn5 , White, Blue
      16. Bahn6 = "00" + Str(Stunden_Bahn6)
      17. Bahn6 = Right(Bahn6,2)
      18. Lcdat y6 , 2 ,Bahn6 , White, Blue
      19. Lcdat y1 , 19 ,":" , White, Blue
      20. Lcdat y2 , 19 ,":" , White, Blue
      21. Lcdat y3 , 19 ,":" , White, Blue
      22. Lcdat y4 , 19 ,":" , White, Blue
      23. Lcdat y5 , 19 ,":" , White, Blue
      24. Lcdat y6 , 19 ,":" , White, Blue
      25. Bahn1 = "00" + Str(B1)
      26. Lcdat y1 , 2 ,B1 , White, Blue ' Bahnabfahrtszeiten Bahn 1-6 max. 2 Zeichen
      27. Bahn2 = "00" + Str(B2)
      28. Lcdat y2 , 26 ,B2 , White, Blue
      29. Bahn3 = "00" + Str(B3)
      30. Lcdat y3 , 26 ,B3 , White, Blue
      31. Bahn4= "00" + Str(B4)
      32. Lcdat y4 , 26 ,B4 , White, Blue
      33. Bahn5 = "00" + Str(B5)
      34. Lcdat y5 , 26 ,B5 , White, Blue
      35. Bahn6 = "00" + Str(B6)
      36. Lcdat y6 , 26 ,B6 , White, Blue
      Display All
    • Hallo six1,

      hier noch mal der komplette Code, evtl. kann einer was mit anfangen.
      Das einzige Problem was mir noch aufgefallen ist, liegt aber am Code, wenn man die
      Uhrzeit einstellt und wenn die Zeit der Minuten über den ersten Bahnen liegt.
      Z.B. die Abfahrt der ersten Bahn liegt bei 11 Minuten und ich stelle z.B 25Minuten mit den Tasten ein
      dann kommt die Anzeige durcheinander.
      Es müsste nach der Einstellung der Uhrzeit eine Sortierroutine rein, die die Bahnen dann in die Richtige Zeit
      sortiert.
      Eine weitere Frage: Ich habe schon mal gefragt, ob es für diesen Treiber 7789V noch andere Fonts gibt.
      Habe schon probiert mit Peers Fontmanager neue zu erstellen, klappt aber irgendwie nicht so richtig ( liegt aber eher an mir ).

      Kann man für dieses Thema ein neues Thema aufmachen ? Evtl. haben ja auch andere Interesse an Antworten.

      Gruß Thomas
      Files