ST 7735 TFT Display 1.8 Zoll 128x160

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    Aufgrund technischer Veränderungen ist der Mailverkehr innerhalb des Forums (Private Nachrichten) nur noch eingeschränkt möglich. Die Einschränkung ist notwendig, um zusätzliche Betriebskosten für das Forum zu vermeiden. Näheres zu den Hintergründen im Thread "Aktuelles zum Forum".Wir bitten um Verständnis.

    Hinweis kann nach Kenntnisnahme deaktiviert werden!

    • Rolf_L schrieb:

      Wie ich rausgefunden habe, wird Port B2 bei SPI = Hard als "SS" bezeichnet und steuert den SPI slave Chip.
      Nur am Atmega328. (und pinkompatiblen Mega8/48/88/168)

      Rolf_L schrieb:

      die obigen Beispielprogramme verwenden alle SPI = hard.
      Wo finde ich eines mit SW SPI und der zugehörigen .inc-datei?
      Ich würde SPI = hard benutzen, funktioniert ja im Beispielprogramm, oder sind die 3 Pins, die du brauchst, belegt?
      In Beitrag #13 hattest du doch die Pinbelegung schon gefunden?
    • Pluto25 schrieb:

      Der Puffer für die SD kann auf 256 Byte runter
      Besser nicht. a_71_f9c57bbe Ich habs gerade mal rausgekramt:
      Die Stacks reduzieren
      $regfile = "m328pdef.dat"
      $crystal =8000000 (kein Quarz)
      $hwstack = 50
      $swstack = 150
      $framesize = 150
      und in der CONFIG_AVR-DOS
      (Zeile 12 ) Const Csepfathandle = 0
      lief hier ohne "unerwachte Fehler" :D
      PS Das "umfrickeln" auf SW-Spi würd ich lassen. Er ist so schon eher gemüdlich a_481_60a3be70
    • Kaum hat man die Leitungen richtig angeschlossen, funktioniert die Hardware :)
      Allerdings steht im Modus "Landscape" der Text auf dem Kopf.
      Ich hatte die Einbaulage des Display mangels Bild mit Textdarstellung falsch verstanden.
      Gibt es wie bei andern Treibern einen Modus "Mirror" oder einen Trick, wie man mit wenig Aufwand den Text um 180° drehen kann?

      Hier meine Pinbelegung für den ATMEGA328PU:
      A0 an PB1(OC1A) mit Lcd_dc Alias Portb.1
      CS an PB2(OC1B) mit Lcd_cs Alias Portb.2
      Reset an PB0 mit Lcd_reset Alias Portb.0
      Sda an PB3 (MOSI)
      Sck an PB5 (SCK)

      MOSI ist also doch auf Pin B.3 zu finden (steht auch so im Datenblatt)

      Mein ATMEGA328PU läuft mit 3,3V und interner 8MHz Clock.
      Programmiert wird mit uralt USBASP-Programmer.
      Hier dazu die ersten Zeilen im obigen Test-Programm:

      $programmer = 19 'USBASP-Programmer
      $prog &HFF , &HE2 , &HD9 , &HFF ' generat Fuse Bits, CLK 8MHz intern, CLK divide disabled
      $regfile = "m328pdef.dat"
      $crystal = 8000000
      $hwstack = 50
      $swstack = 150
      $framesize = 150
      $baud = 57600
      '*******************************************************************************

      Const Sdcard = 0 'use SD Card = 1 no SD Card = 0
      Const Modus = 1 '0=Portrait 1=Landscape
      Const Disp_typ = 1 'RGB order 0=Black Tab 1=Red Tab
      '*******************************************************************************
      Config Portb.2 = Output
      Config Portb.1 = Output
      Config Portb.0 = Output
      Config Portb.6 = Output
      Config Portb.7 = Output
      Lcd_cs Alias Portb.2
      Lcd_dc Alias Portb.1
      Lcd_reset Alias Portb.0
      Portb.6 = 1
      Portb.7 = 0
      '*******************************************************************************
      $include "ST7735_declarations.inc"

      #if Sdcard = 1
      $include "Config_MMCSD_HC.bas"
      $include "Config_AVR-DOS.bas"
      Call Init_sd_card()
      #endif

      #if Sdcard = 0
      Config Spi = Hard , Interrupt = Off , Data Order = Msb , Master = Yes , Polarity = High , Phase = 1 , Clockrate = 4 , Noss = 1
      Spsr = 1
      Spiinit
      #endif
      .
      .
      .
      Wissen ist Macht, nix wissen macht auch nix.

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Rolf_L ()

    • Der Befehl $36 entscheidet über die Ausrichtung. Ich mußte ein Bild drehen. BMP speichert von unten nach oben a_67_e210de67 a_67_e210de67
      Ob der Rest des Codes damit klarkommt müsste versucht werden.
      Hier die Zeilen die es auf den Kopf stellten

      Quellcode

      1. #if Modus = 1
      2. Call Lcd_write_data(&H30) ' B0 Landscape bgr
      3. #else
      4. Call Lcd_write_data(&H40) ' D0 Potray bgr
      5. #endif '0,0 unten links
      Bit 2/4 würden Spiegelschrift richtig stellen und Bit 3 ist für die Farben zuständig. (Falss es dan irgendwie falsch aussieht. :D
    • Habe den Call im Code für Landscape eingefügt, hat sich aber nicht ausgewirkt

      Quellcode

      1. 'test landscape
      2. '*******************************************************************************
      3. #if Modus = 1
      4. Call Lcd_write_data(&H30)
      5. Call Lcd_clear(gray3)
      6. Wait 1
      7. Call Lcd_clear(black)
      8. Call Lcd_text( "Font 6x10" , 5 , 20 , 4 , Red , Black)
      9. Call Lcd_text( "Font 8x8" , 5 , 40 , 1 , Yellow , Black)
      10. Call Lcd_text( "Font 8x12" , 5 , 60 , 3 , Green , Black)
      11. Call Lcd_text( "Font 12x16" , 1 , 80 , 2 , Blue , Black)
      12. Call Lcd_text( "Font 10x16" , 1 , 110 , 5 , Magenta , Black)
      Alles anzeigen
      Wissen ist Macht, nix wissen macht auch nix.
    • Sorry, verstehe leider nur "Bahnhof" :)
      Hier der kpl. Quellcode vom Testprogramm.
      Wo muss ich Write Data bzw. Write Command einfügen?
      Eventuell in einer der .inc-Dateien?

      Quellcode: Testprogram Display ST7735R 1.8Zoll 128x160

      1. '*******************************************************************************
      2. 'Programm für ein Display ST7735R 1.8Zoll 128x160
      3. 'Display from adafruit.com/products/358
      4. 'or HY-1.8 Spi Display
      5. 'Bascom IDE 2.0.7.5
      6. '
      7. 'Version:13092012
      8. 'By Hkipnik
      9. ' © Copyright by H.Kipnik 2012
      10. 'Date 13.09.2012
      11. 'update 03.06.2013
      12. 'modified 03.03.2022 by Rolf
      13. '*******************************************************************************
      14. ' SD Card not used
      15. 'Display
      16. ' CS --> portb.2
      17. ' DC --> portb.1
      18. ' reset --> portb.0
      19. ' Mosi --> portb.3
      20. ' Lite --> +5V
      21. '
      22. 'Display typ Red or black Tab have different RGB order
      23. 'color of the display plastic wrap
      24. '*******************************************************************************
      25. $programmer = 19 'USBASP-Programmer
      26. $prog &HFF , &HE2 , &HD9 , &HFF ' generat Fuse Bits, CLK 8MHz intern, CLK divide disabled
      27. $regfile = "m328pdef.dat" 'ATmega328P (Arduino)
      28. $crystal = 8000000
      29. $hwstack = 50
      30. $swstack = 150
      31. $framesize = 150
      32. $baud = 57600
      33. '*******************************************************************************
      34. Const Sdcard = 0 'use SD Card = 1 no SD Card = 0
      35. Const Modus = 1 '0=Portrait 1=Landscape
      36. Const Disp_typ = 1 'RGB order 0=Black Tab 1=Red Tab
      37. '*******************************************************************************
      38. Config Portb.0 = Output 'Reset
      39. Config Portb.1 = Output 'DC (A0)
      40. Config Portb.2 = Output 'CS
      41. Config Portb.6 = Output 'N.C.
      42. Config Portb.7 = Output '+28V on/off
      43. Lcd_reset Alias Portb.0
      44. Lcd_dc Alias Portb.1
      45. Lcd_cs Alias Portb.2
      46. Portb.7 = 0 '+28V on/off
      47. Portb.6 = 1 'N.C.
      48. '*******************************************************************************
      49. $include "ST7735_declarations.inc"
      50. Config Spi = Hard , Interrupt = Off , Data Order = Msb , Master = Yes , Polarity = High , Phase = 1 , Clockrate = 4 , Noss = 1
      51. Spsr = 1
      52. Spiinit
      53. 'use for demo
      54. Dim Xx As Byte , Yy As Byte , Temp As Byte , Yy1 As Byte , Xx1 As Byte , Col5 As Word , Teller As Byte
      55. Call Lcd_init()
      56. '*******************************************************************************
      57. 'Main
      58. Do
      59. '*******************************************************************************
      60. 'test landscape
      61. '*******************************************************************************
      62. #if Modus = 1
      63. Call Lcd_clear(gray3)
      64. Wait 1
      65. Call Lcd_clear(black)
      66. Call Lcd_text( "Font 6x10" , 5 , 20 , 4 , Red , Black)
      67. Call Lcd_text( "Font 8x8" , 5 , 40 , 1 , Yellow , Black)
      68. Call Lcd_text( "Font 8x12" , 5 , 60 , 3 , Green , Black)
      69. Call Lcd_text( "Font 12x16" , 1 , 80 , 2 , Blue , Black)
      70. Call Lcd_text( "Font 10x16" , 1 , 110 , 5 , Magenta , Black)
      71. Call Lcd_clear(red)
      72. Call Lcd_box(10 , 10 , 50 , 50 , 1 , Yellow , Blue)
      73. Call Lcd_line(10 , 64 , 100 , 100 , 4 , White)
      74. Wait 3
      75. Call Lcd_clear(black)
      76. Call Lcd_clear(blue)
      77. Wait 2
      78. Call Lcd_line(0 , 0 , 159 , 0 , 1 , White)
      79. Call Lcd_line(0 , 127 , 159 , 127 , 1 , White)
      80. Call Lcd_line(0 , 0 , 0 , 127 , 1 , White)
      81. Call Lcd_line(159 , 0 , 159 , 127 , 1 , White)
      82. Wait 1
      83. Call Lcd_clear(black)
      84. Call Lcd_circle(80 , 64 , 40 , 1 , Green)
      85. Wait 2
      86. Call Lcd_clear(black)
      87. Call Lcd_circle(80 , 64 , 40 , 0 , Green)
      88. Wait 2
      89. Call Lcd_clear(black)
      90. Call Lcd_fill_circle(80 , 64 , 50 , Green)
      91. Wait 2
      92. Call Lcd_clear(black)
      93. Call Lcd_clear(black)
      94. Call Lcd_text( "Box Fill" , 10 , 2 , 3 , Yellow , Black)
      95. For Temp = 1 To 10
      96. Xx = 10 + Rnd(50)
      97. Yy = 5 + Rnd(60)
      98. Yy1 = 5 + Rnd(30)
      99. Xx1 = 10 + Rnd(50)
      100. Col5 = 1 + Rnd(10)
      101. Call Lcd_box(xx , Yy , Xx1 , Yy1 , 1 , Color_array(col5) , Red)
      102. Next
      103. Wait 2
      104. Call Lcd_clear(black)
      105. Call Lcd_text( "Box with Border" , 5 , 2 , 3 , Yellow , Black)
      106. For Temp = 1 To 10
      107. Xx = 10 + Rnd(50)
      108. Yy = 10 + Rnd(70)
      109. Yy1 = 5 + Rnd(50)
      110. Xx1 = 10 + Rnd(50)
      111. Col5 = 1 + Rnd(10)
      112. Call Lcd_box(xx , Yy , Xx1 , Yy1 , 2 , Color_array(col5) , Cyan0)
      113. Next
      114. Wait 2
      115. Call Lcd_clear(black)
      116. Call Lcd_text( "Box" , 10 , 2 , 3 , Yellow , Black)
      117. For Temp = 1 To 10
      118. Xx = 10 + Rnd(50)
      119. Yy = 5 + Rnd(80)
      120. Yy1 = 5 + Rnd(50)
      121. Xx1 = 10 + Rnd(50)
      122. Col5 = 1 + Rnd(10)
      123. Call Lcd_box(xx , Yy , Xx1 , Yy1 , 3 , Color_array(col5) , Transparent)
      124. Next
      125. Wait 2
      126. '-------------------------------------------------------------------------------
      127. Call Lcd_clear(black)
      128. For Teller = 1 To 5
      129. Xx = 80
      130. Xx1 = 4
      131. Yy = 50
      132. Yy1 = 4
      133. For Temp = 1 To 10
      134. Col5 = 1 + Rnd(10)
      135. Call Lcd_box(xx , Yy , Xx1 , Yy1 , 3 , Color_array(col5) , Transparent)
      136. Xx = Xx - 4
      137. Xx1 = Xx1 + 8
      138. Yy = Yy - 4
      139. Yy1 = Yy1 + 8
      140. Next Temp
      141. Next Teller
      142. Wait 1
      143. #endif
      144. '*******************************************************************************
      145. 'test Portrait
      146. '*******************************************************************************
      147. #if Modus = 0
      148. Call Lcd_clear(black)
      149. Call Lcd_clear(black)
      150. Call Lcd_text( "Font 6x10" , 5 , 20 , 4 , Red , Black)
      151. Call Lcd_text( "Font 8x8" , 5 , 40 , 1 , Yellow , Black)
      152. Call Lcd_text( "Font 8x12" , 5 , 60 , 3 , Green , Black)
      153. Call Lcd_text( "Font 12x16" , 1 , 80 , 2 , Blue , Black)
      154. Call Lcd_text( "Font 10x16" , 1 , 110 , 5 , Magenta , Black)
      155. Wait 2
      156. Call Lcd_clear(red)
      157. ' Wait 2
      158. Call Lcd_clear(blue)
      159. Call Lcd_clear(black)
      160. Call Lcd_text( "Line" , 40 , 2 , 3 , Yellow , Black)
      161. Xx = 1
      162. For Temp = 1 To 20
      163. Xx = Xx + 6
      164. Col5 = 1 + Rnd(10)
      165. Call Lcd_line(1 , 1 , Xx , 160 , 1 , Color_array(col5))
      166. Next
      167. Xx = 128
      168. For Temp = 1 To 20
      169. Xx = Xx - 6
      170. Col5 = 1 + Rnd(10)
      171. Call Lcd_line(128 , 1 , Xx , 160 , 1 , Color_array(col5))
      172. Next
      173. Call Lcd_clear(black)
      174. Call Lcd_text( "Line" , 40 , 2 , 3 , Yellow , Black)
      175. Xx = 1
      176. For Temp = 1 To 20
      177. Xx = Xx + 6
      178. Col5 = 1 + Rnd(10)
      179. Call Lcd_line(1 , 1 , Xx , 160 , 2 , Color_array(col5))
      180. Next
      181. Xx = 128
      182. For Temp = 1 To 20
      183. Xx = Xx - 6
      184. Col5 = 1 + Rnd(10)
      185. Call Lcd_line(128 , 1 , Xx , 160 , 2 , Color_array(col5))
      186. Next
      187. Wait 2
      188. '-------------------------------------------------------------------------------
      189. Call Lcd_clear(black)
      190. Call Lcd_text( "Circle fill" , 18 , 2 , 3 , Yellow , Black)
      191. Yy1 = 50
      192. Call Lcd_fill_circle(64 , 80 , Yy1 , Red)
      193. For Temp = 1 To 10
      194. Yy1 = Yy1 - 5
      195. Col5 = 1 + Rnd(10)
      196. Call Lcd_fill_circle(64 , 80 , Yy1 , Color_array(col5))
      197. Next
      198. Wait 2
      199. Call Lcd_clear(black)
      200. Call Lcd_text( "Circle" , 38 , 2 , 3 , Yellow , Black)
      201. Yy1 = 60
      202. Call Lcd_circle(64 , 80 , Yy1 , 0 , Red)
      203. For Temp = 1 To 10
      204. Yy1 = Yy1 - 5
      205. Col5 = 1 + Rnd(10)
      206. Call Lcd_circle(64 , 80 , Yy1 , 0 , Color_array(col5))
      207. Next
      208. Wait 2
      209. '-------------------------------------------------------------------------------
      210. Wait 1
      211. Call Lcd_clear(black)
      212. #if Sdcard = 1
      213. Call Lcd_pic(11 , 5 , 106 , 150 , "klein.bin")
      214. Wait 2
      215. Call Lcd_clear(black)
      216. Call Lcd_pic(10 , 10 , 50 , 50 , "uhr1.bin")
      217. Call Lcd_pic(60 , 60 , 50 , 50 , "uhr1.bin")
      218. Wait 2
      219. Call Lcd_pic(0 , 0 , 127 , 160 , "011.bin")
      220. Call Lcd_text( "Transparent" , 10 , 50 , 3 , Red , Transparent)
      221. Wait 2
      222. Call Lcd_pic(0 , 0 , 127 , 160 , "009.bin")
      223. Wait 2
      224. Call Lcd_pic(0 , 0 , 127 , 160 , "012.bin")
      225. Wait 2
      226. Call Lcd_pic(0 , 0 , 127 , 160 , "016.bin")
      227. Wait 2
      228. Call Lcd_pic(0 , 0 , 127 , 160 , "022.bin")
      229. Wait 2
      230. Call Lcd_pic(0 , 0 , 127 , 160 , "023.bin")
      231. Wait 2
      232. Call Lcd_pic(0 , 0 , 127 , 160 , "024.bin")
      233. Wait 2
      234. Call Lcd_pic(0 , 0 , 127 , 160 , "028.bin")
      235. Wait 2
      236. Call Lcd_pic(0 , 0 , 127 , 160 , "034.bin")
      237. Wait 2
      238. Call Lcd_pic(0 , 0 , 127 , 160 , "045.bin")
      239. Wait 2
      240. #endif
      241. '-------------------------------------------------------------------------------
      242. Call Lcd_clear(black)
      243. Call Lcd_text( "Box Fill" , 10 , 2 , 3 , Yellow , Black)
      244. For Temp = 1 To 10
      245. Xx = 10 + Rnd(50)
      246. Yy = 20 + Rnd(80)
      247. Yy1 = 20 + Rnd(50)
      248. Xx1 = 10 + Rnd(50)
      249. Col5 = 1 + Rnd(10)
      250. Call Lcd_box(xx , Yy , Xx1 , Yy1 , 1 , Color_array(col5) , Red)
      251. Next
      252. Wait 2
      253. Call Lcd_clear(black)
      254. Call Lcd_text( "Box with Border" , 5 , 2 , 3 , Yellow , Black)
      255. For Temp = 1 To 10
      256. Xx = 10 + Rnd(50)
      257. Yy = 20 + Rnd(80)
      258. Yy1 = 20 + Rnd(50)
      259. Xx1 = 10 + Rnd(50)
      260. Col5 = 1 + Rnd(10)
      261. Call Lcd_box(xx , Yy , Xx1 , Yy1 , 2 , Color_array(col5) , Cyan0)
      262. Next
      263. Wait 2
      264. Call Lcd_clear(black)
      265. Call Lcd_text( "Box" , 10 , 2 , 3 , Yellow , Black)
      266. For Temp = 1 To 10
      267. Xx = 10 + Rnd(50)
      268. Yy = 20 + Rnd(80)
      269. Yy1 = 20 + Rnd(50)
      270. Xx1 = 10 + Rnd(50)
      271. Col5 = 1 + Rnd(10)
      272. Call Lcd_box(xx , Yy , Xx1 , Yy1 , 3 , Color_array(col5) , Transparent)
      273. Next
      274. Wait 2
      275. '-------------------------------------------------------------------------------
      276. Call Lcd_clear(black)
      277. For Teller = 1 To 5
      278. Xx = 62
      279. Xx1 = 4
      280. Yy = 78
      281. Yy1 = 4
      282. For Temp = 1 To 15
      283. Col5 = 1 + Rnd(10)
      284. Call Lcd_box(xx , Yy , Xx1 , Yy1 , 3 , Color_array(col5) , Transparent)
      285. Xx = Xx - 4
      286. Xx1 = Xx1 + 8
      287. Yy = Yy - 4
      288. Yy1 = Yy1 + 8
      289. Next Temp
      290. Next Teller
      291. Wait 1
      292. #endif
      293. Loop
      294. End
      295. '*******************************************************************************
      296. $include "ST7735_functions.inc"
      297. #if Sdcard = 1
      298. $include "SD_card_init.inc"
      299. #endif
      300. $include "Font\Font12x16.font"
      301. $include "Font\Font8x8.font"
      302. $include "Font\font8x12.font"
      303. $include "Font\font6x10.font"
      304. $include "Font\font10x16.font"
      305. '*******************************************************************************
      Alles anzeigen
      Wissen ist Macht, nix wissen macht auch nix.

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Rolf_L ()

    • Rolf_L schrieb:

      Wo muss ich Write Data bzw. Write Command einfügen?
      Das ist egal. Da wo es gebraucht wird. Es reagiert sofort. Ist das nur einmal nötig macht es Sinn es gleich in der Init zu ändern.
      (In meinem Fall war es gleich vor dem Kopfüberbild weil die anderen Anweisungen richtig herum waren wurde es dort wieder geändert)
      Das Init steht in der ST7735_functions.inc (weit unten)Da werden einige Befehle ausgeführt. Mache arbeiten alleine (z.B. $13=Display On), Andere brauchen noch ein oder mehrere Datenbytes. Der Befehl $36 braucht genau ein Datenbyte.
    • egal wo ich die 5 Zeilen in der ST7735_functions.inc einfüge, kommen beim Compilieren folgende Fehlermeldungen:

      Error : 1 Line : 1 Unknown statement [{ \ RTF1 \ ANSI \ ANSICPG1252 \ DEFF0 \ NOUICOMPAT{ \ FONTTBL{ \ F0 \ FNIL \ FCHARSET0 COURIER NEW ; }}] , in File : INC\ST7735_functions.inc
      Error : 1 Line : 2 Unknown statement [{ \ COLORTBL ; \ RED0 \ GREEN0 \ BLUE255 ; }] , in File : INC\ST7735_functions.inc

      Hier ein Auszug:
      '*******************************************************************************
      'Programm für ein Display ST7735R 1.8Zoll 128x160
      'Display from adafruit.com/products/358
      'Bascom IDE 2.0.7.5
      '
      'Version:13092012
      'By Hkipnik
      ' © Copyright by H.Kipnik 2012
      'Date 13.09.2012
      '*******************************************************************************

      $nocompile

      '*******************************************************************************
      ' Draw Pic x start -- y start -- Breite -- Höhe
      ' von der SD Card in Bin Daten 2 Byte per Pixel
      ' umgewandelt mit dem Programm Image2LCD
      '*******************************************************************************

      #if Modus = 1
      Call Lcd_write_data(&H30)
      #else
      Call Lcd_write_data(&H40)
      #endif

      #if Sdcard = 1
      Sub Lcd_pic(byval Xs As Byte , Byval Ys As Byte , Byval Breite As Byte , Byval Height As Byte , Byval Bnama As String)
      Local Zael As Byte , Xb As Byte , Yb As Byte
      Local Line_len As Word , Llen As Word

      Line_len = 2 * Breite
      Xb = Breite + Xs 'X end
      .
      .
      .
      .
      Wissen ist Macht, nix wissen macht auch nix.
    • Da oben würde es nie ausgeführt. Die Fehlermeldung bekomme ich hier nicht ? Sieh Dir die Zeilen 471-494 an Dort sind sie verwand. (Der Urheber ist nicht so schreibfaul wie ich. Das Call Lcd_write_command(&H36) reicht auch einmal vor den #if.. ist aber zwingend nötig damit der Chip weiß das er die Daten auswerten und nicht anzeigen muß.
      Oder ersetzte in Zeile 475 die A0 mit 30, in 478 a8 mit 38, in 484 C0 mit 40 und in 487 A8 mit 48.
      Ein Backup vorher nicht vergessen ( z.B. vor der Änderung "Speicher unter" ST7735_functions_orginal.inc)
    • Die Fehlermeldung kam durch die Verwendung von Wordpad als Editor.
      Der hat da einfach ein paar Zeilen in den Header geschrieben, die man nicht sehen konnte.
      Wusste nicht, dass BASCOM auch .inc-Dateien editieren kann.
      Na ja, so lernt man halt dazu :)

      In den Zeilen wie angegeben habe ich die Bytes ersetzt und nach dem Compilieren erscheint jetzt der Text von links nach rechts, aber nach wie vor auf dem Kopf.
      Die 5 Zeilen einfügen, hat nichts gebracht und wurden remarked.

      Im Anhang der Quellcode
      Dateien
      Wissen ist Macht, nix wissen macht auch nix.

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Rolf_L ()

    • das war eine Superidee a_64_3a718cae
      Vielen Dank für Deine Hilfe.
      Damit kann man alle Darstellungsmöglichkeiten ausloten.
      Mit Parameter 96 wird der Text um 180° gedreht.
      Somit ist das Wochenende gerettet.

      Anbei der modifizierte Quellcode für alle mit ähnlichem Problem.
      Dateien
      Wissen ist Macht, nix wissen macht auch nix.
    • Hallo Forengemeindebascomforum.de/index.php?attac…062e5d9507e0a6ad4cec5e261,
      ich habe eine andere Frage zu dem hier behandelten Thema, und daher bin ich mir nicht sicher, ob ich sie hier stellen kann.
      Mein Missgeschick ist auf dem Bild zu sehen. Ich habe extra eine Displayplatine angefertigt, aber das Display ist hardwaremäßig falsch herum platziert. Gibt es eine Möglichkeit, dies softwaremäßig zu korrigieren? Ich verwende "ST7735_declarations.inc" mit dem ST7735R 1.8-Zoll-Display (128x160) und die Software von Hkipnik.
      Dateien
      • Bild Display.jpeg

        (380,05 kB, 30 mal heruntergeladen, zuletzt: )
    • Hallo Franz,
      herzlichen Dank für die Beantwortung meiner Frage.

      Ich habe MY und MX erhöht, was zu hF6 anstelle von h36 geführt hat.
      Einiges hat sich geändert, aber leider nicht alles. Nach 3 Stunden harter Arbeit weiß ich nicht mehr weiter.

      hier das Bild. Daran wird offenbar, dass in Sub Lcd_clear(byval Color As Word) und Sub Lcd_text(...) noch einiges geändert werden muss.

      VY73 de DieterBild nach h36.jpeg
    • Hallo Franz,
      herzlichen Dank für den weiteren Hinweis.
      Mir ist aus dem Datenblatt nicht genau ersichtlich, in was ich hA0 ändern kann. Inzwischen habe ich die Lust verloren, noch weiter an diesen Displays meine Zeit zu verschwenden. Der eigentliche Zweck davon war, meine Trenntransformatoren zu überarbeiten, und diesen möchte ich ein neues Display spendieren. Diese müssen nicht unbedingt farbig sein, aber sie müssen eine schnelle Darstellung gewährleisten.
      Die TFT/LCD-Displays sind dafür gänzlich ungeeignet, daher breche ich meine "Forschungsarbeit" an dieser Stelle ab.
      Inzwischen habe ich 2-Zoll-OLEDs besorgt, die hoffentlich besser geeignet sind.

      Ich habe auch ein Video angehängt. drive.google.com/file/d/1xPNPb…dBv3U/view?usp=drive_link