Anzeige 1,8" Uhranzeige

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

    • da fehlt das #endif am Ende der Loop.


      BASCOM Source Code

      1. Reset FlagRefreshDisplay 'Flag Löschen
      2. End If
      3. #endif < - - - - - - - - - - - - - - -#endif Fehlt
      4. Loop
      5. ' --------------------------------
      6. ' Interrupt-Routine
      7. ' Wird im Sekundentakt von
      8. ' OC1A-Interrupt aufgerufen
      9. ' --------------------------------
      Display All
    • Hallo Heiko,

      wenn ich das #endif reinmache bekomme ich folgende Fehlermeldung

      Error : 1 Line : 160 Unknown statement [INIT SD CARD AND SPI] , in File : F:\µC Programme-1\Anzeige 2.4 Zoll ILI9341\Anzeigetafel_24_1.bas
      Error : 222 Line : 161 Illegal character [expected (, got '=' [SDCARD = 1]] , in File : F:\µC Programme-1\Anzeige 2.4 Zoll ILI9341\Anzeigetafel_24_1.bas
      Error : 326 Line : 161 #ENDIF expected , in File : F:\µC Programme-1\Anzeige 2.4 Zoll ILI9341\Anzeigetafel_24_1.bas
    • das #endif fehlt und ein Do zuviel

      BASCOM Source Code

      1. '*******************************************************************************
      2. ' Landscape Mode
      3. '*******************************************************************************
      4. '*******************************************************************************
      5. #if Lcd_mode = 3 Or Lcd_mode = 4
      6. Do < - - - - - - -do Bitte Löschen
      7. If Flagrefreshdisplay = 1 Then ' Flag abfragen, wenn gesetzt, dann Display aktualisieren
    • Hallo Heiko,

      habe es so geändert :

      Aber die Hauptschleife muss doch mit do beginnen, oder nicht, komplett verwirrt.

      aber bekomme immer folgende Fehlermeldung:


      Error : 1 Line : 160 Unknown statement [INIT SD CARD AND SPI] , in File : F:\µC Programme-1\Anzeige 2.4 Zoll ILI9341\Anzeigetafel_24_1.bas
      Error : 222 Line : 161 Illegal character [expected (, got '=' [SDCARD = 1]] , in File : F:\µC Programme-1\Anzeige 2.4 Zoll ILI9341\Anzeigetafel_24_1.bas
      Error : 326 Line : 161 #ENDIF expected , in File : F:\µC Programme-1\Anzeige 2.4 Zoll ILI9341\Anzeigetafel_24_1.bas

      Source Code

      1. ' Landscape Mode
      2. '*******************************************************************************
      3. '*******************************************************************************
      4. #if Lcd_mode = 3 Or Lcd_mode = 4
      5. If FlagRefreshDisplay = 1 then ' Flag abfragen, wenn gesetzt, dann Display aktualisieren
      6. Lcd_clear Blue
      7. Lcd_text "Iserlohn BF Gleis Abf." , 1 , 5 , 2 , White , Blue,1 ' Startzeile Display Pixel x=1,Y=4, Fond 4
      8. Lcd_line 0 , 15 , 158 , 15 , 1 , White
      9. Lcd_line 0 , 112 , 158 , 112 , 1 , White
      10. Lcd_line 28, 15, 28,112,1, White
      11. Lcd_line 118, 15, 118,112,1, White
      12. 'Lcd_line 120, 15, 120,112,1, White
      13. Lcd_text "RB53" , 2 , y1 , 2 , Blue, White ,1 ' Displayzeile 2-7 Angabe der Zugnummer max. 4 Zeichen
      14. Lcd_text "RB91" , 2 , y2 , 2 , Blue, White ,1
      15. Lcd_text "RB16" , 2 , y3 , 2 , Blue, White ,1
      16. Lcd_text "RB53" , 2 , y4 , 2 , Blue, White ,1
      17. Lcd_text "RB91" , 2 , y5 , 2 , Blue, White ,1
      18. Lcd_text "RB16" , 2 , y6 , 2 , Blue, White ,1
      19. Lcd_text "min" , 142 , y1 , 2 , White , Blue ,1
      20. Lcd_text "min" , 142 , y2 , 2 , White , Blue ,1
      21. Lcd_text "min" , 142 , y3 , 2 , White , Blue ,1
      22. Lcd_text "min" , 142 , y4 , 2 , White , Blue ,1
      23. Lcd_text "min" , 142 , y5 , 2 , White , Blue ,1
      24. Lcd_text "min" , 142 , y6 , 2 , White , Blue ,1
      25. Lcd_text "1" , 110 , y1 , 2 , White , Blue ,1 ' Displayzeile 2-7 Angabe der Gleisnummer Bahn 1-6 max. 1 Zeichen
      26. Lcd_text "2" , 110 , y2 , 2 , White , Blue ,1
      27. Lcd_text "2" , 110 , y3 , 2 , White , Blue ,1
      28. Lcd_text "1" , 110 , y4 , 2 , White , Blue ,1
      29. Lcd_text "2" , 110 , y5 , 2 , White , Blue ,1
      30. Lcd_text "1" , 110 , y6 , 2 , White , Blue ,1
      31. Lcd_text "Dortmund HBF" , 32 , y1 , 2 , White , Blue ,1 ' Bahnbezeichnung Bahn 1-6 max. 13 Zeichen
      32. Lcd_text "Hagen HBF" , 32 , y2 , 2 , White , Blue ,1
      33. Lcd_text "Essen HBF" , 32 , y3 , 2 , White , Blue ,1
      34. Lcd_text "Dortmund HBF" , 32 , y4 , 2 , White , Blue ,1
      35. Lcd_text "Hagen HBF" , 32, y5, 2 , White , Blue ,1
      36. Lcd_text "Essen HBF" , 32 , y6 , 2 , White , Blue ,1
      37. Bahn1 = " " + str(B1) ' Abfahrtszeit für Bahn1 bis Bahn6 max. 2 Zeichen
      38. Lcd_text Bahn1 , 120 , y1 , 2 , White , Blue ,1
      39. Bahn2 = " " + str(B2)
      40. Lcd_text Bahn2 , 120 , y2 , 2 , White , Blue ,1
      41. Bahn3 = " " + str(B3)
      42. Lcd_text Bahn3 , 120 , y3 , 2 , White , Blue ,1
      43. Bahn4 = " " + str(B4)
      44. Lcd_text Bahn4 , 120 , y4 , 2 , White , Blue ,1
      45. Bahn5 = " " + str(B5)
      46. Lcd_text Bahn5 , 120 , y5 , 2 , White , Blue ,1
      47. Bahn6 = " " + str(B6)
      48. Lcd_text Bahn6 , 120 , y6 , 2 , White , Blue ,1
      49. Lcd_text "Uhrzeit" , 10 , 118 , 1 , White , Blue ,1
      50. tmpString = "00" + Str(Stunden) 'Einblendung der Uhrzeit unterste Displayzeile
      51. Zeit = Right(tmpString , 2) + ":"
      52. tmpString = "00" + Str(Minuten)
      53. Zeit = Zeit + Right(tmpString , 2)
      54. lcd_text Zeit, 80,118,1,White, Blue ,1
      55. decr B1 'bei jedem Durchlauf runterzählen der Abfahrtszeit
      56. decr B2
      57. decr B3
      58. decr B4
      59. decr B5
      60. decr B6
      61. 'runterscrollen der abgefahrenen Bahnen
      62. if B1 = 0 then y1 = 96 'immer wenn die Bahn auf der Anzeige
      63. if B1 = 0 then y2 = 24 'die Abfahrtszeit 0min erreicht wird diese in
      64. if B1 = 0 then y3 = 36 'die untereste Zeile geschoben
      65. if B1 = 0 then y4 = 48 'und alle anderen rücken um 12 Pixel nach oben.
      66. if B1 = 0 then y5 = 60
      67. if B1 = 0 then y6 = 72
      68. if B1 = 0 then B1 = 60
      69. if B2 = 0 then y2 = 96
      70. if B2 = 0 then y3 = 24
      71. if B2 = 0 then y4 = 36
      72. if B2 = 0 then y5 = 48
      73. if B2 = 0 then y6 = 60
      74. if B2 = 0 then y1 = 84
      75. if B2 = 0 then B2 = 60
      76. if B3 = 0 then y3 = 96
      77. if B3 = 0 then y4 = 24
      78. if B3 = 0 then y5 = 36
      79. if B3 = 0 then y6 = 48
      80. if B3 = 0 then y1 = 72
      81. if B3 = 0 then y2 = 84
      82. if B3 = 0 then B3 = 60
      83. if B4 = 0 then y4 = 96
      84. if B4 = 0 then y5 = 24
      85. if B4 = 0 then y6 = 36
      86. if B4 = 0 then y1 = 60
      87. if B4 = 0 then y2 = 72
      88. if B4 = 0 then y3 = 84
      89. if B4 = 0 then B4 = 60
      90. if B5 = 0 then y5 = 96
      91. if B5 = 0 then y6 = 24
      92. if B5 = 0 then y1 = 48
      93. if B5 = 0 then y2 = 60
      94. if B5 = 0 then y3 = 72
      95. if B5 = 0 then y4 = 84
      96. if B5 = 0 then B5 = 60
      97. if B6 = 0 then y6 = 96
      98. if B6 = 0 then y1 = 36
      99. if B6 = 0 then y2 = 48
      100. if B6 = 0 then y3 = 60
      101. if B6 = 0 then y4 = 72
      102. if B6 = 0 then y5 = 84
      103. if B6 = 0 then B6 = 60
      104. Reset FlagRefreshDisplay 'Flag Löschen
      105. End If
      106. #endif
      107. loop
      Display All
    • Hallo @Thomas1964

      Ich glaube du solltest dir mal die Anweisungen (Befehle) in der Hilfe mal genauer ansehen.
      Da gibt es im Grunde 2 Arten.
      • Eigenständige Anweisungen wie Print, Lcd oder Waitms als Beispiel.
      • Dann gibt Block-Anweisungen, also Anweisungen, die immer in Verbindung mit anderen Anweisung zur Anwendung kommen.
        Zu einem Do gehört ein Loop,
        zu einem While gehört ein Wend.
        Zu einem For gehört ein Next,
        zu einem Select Case gehört enn End Select, so wie
        zu einem If (Als Anweisungsblock) ein End If gehört, was den Anweisungsblock abschließt.
        Das gibt es auch bei Direktiven. Stichwort bedingte Compilierung. Da gibt es
        #IF .. #ENDIF (zusammen geschrieben) usw.
      Es ist wichtig das zu verstehen.

      Eine Hauptschleife muss auch nicht zwingend mit einem Do beginnen.
      Man kann eine Hauptschleife auch mit

      BASCOM Source Code

      1. While 1
      2. ' Anweisungen ...
      3. Wend

      konstruieren.

      Machbar ist das auch mit Label mit Goto.

      BASCOM Source Code

      1. Hauptschleife_Start:
      2. ' Anweisungen ...
      3. Goto Hauptschleife_Start

      Das sind alles Grundlagen!
    • New

      Hallo Heiko,

      ich habe mir den Code von Dir angeschaut, und stimmt, es ist mir dann auch aufgefallen.
      Werde mich noch mehr in die Basics stürzen.
      Aber es ist super, das man hier im Forum eine Solche Hilfe bekommt, dann lernt es sich schneller
      und besser.
      Vielen Dank nochmal an alle die geholfen haben.

      Gruß Thomas
    • New

      Hallo Thomas
      Ich stecke jetzt nicht tief drin in den Display, die ihr da macht.
      Aber die funktionieren alle irgendwie gleich.

      Was mir bei deinem Bild auffällt ist, dass die Texte keine Striche haben, auch nicht die invertierten.
      Auch die durchgezogenen Linien sind sauber.

      Ist jetzt nur eine Vermutung, aber ich glaube es kommt vom Lcd_Clear Befehl.
      Versuche da mal verschiedene Farben.
    • New

      Hallo Heiko,

      du kennst dich doch super mit den Displays aus, warum ist das Feld deutlich höher als der Text ?
      Kann man das irgendwo ändern ?

      Lcd_text "RB53" , 2 , y1 , 4 , Blue, White

      Der Text ist 6x10 Pixel groß, und das Feld fast doppelt so hoch
      Files
      • 20200807_130213.jpg

        (119.41 kB, downloaded 11 times, last: )
      • pixel.png

        (552.08 kB, downloaded 7 times, last: )
    • New

      Thomas1964 wrote:

      Kann man das irgendwo ändern ?
      Ja sicherlich kann man.
      Man muss nur den Fehler beheben.
      Der scheint jetzt in der Zeichenausgabe-Routine zu stecken. Scheint so als ob nur jede 2. Zeile zeile eine Zeile mit Zeichenpixeln ist.

      Die Treiber sind von @hkipnik, er findet den Fehler bestimmt schneller als ich.
      Bin zudem gerade mit was anderem Beschäftigt und hab grad keine Zeit dafür.
    • New

      Das kommt von der Bascom Font Datei die in der Höhe immer auf ganze Bytes angegeben wird,
      soll heißen beim Font von 8x10 ist die Höhe dann 16 anstatt 10 Pixel.

      für solche Aufgaben gibt es im Programm die Funktion Text Transparent.
      erst die weiße Hintergrundbox zeichnen dann den Text reinschreiben.

      Lcd_box(10 , 10 , 30 , 20 , 1 , White , White)
      Lcd_text( "Font 6x10" , 10 , 10 , 2 , Blue , Transparent)