Text Shift bei Glcd

    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!

    • Quellcode

      1. $regfile = "m48def.dat"
      2. $hwstack = 32
      3. $swstack = 32
      4. $framesize = 32
      5. $crystal = 8000000
      6. Config Clockdiv = 1 ' make sure the chip runs at 8 MHz
      7. Config Scl = Portc.5 ' used i2c pins
      8. Config Sda = Portc.4
      9. Config Twi = 400000 ' i2c speed
      10. dim a as byte
      11. I2cinit
      12. $lib "i2c_twi.lbx" ' we do not use software emulated I2C but the TWI
      13. $lib "glcdSSD1306-I2C.lib" ' override the default lib with this special one
      14. #if _build < 20784
      15. Dim ___lcdrow As Byte , ___lcdcol As Byte ' dim these for older compiler versions
      16. #endif
      17. Config Graphlcd = Custom , Cols = 128 , Rows = 64 , Lcdname = "SSD1306"
      18. Cls
      19. Setfont Font8x8tt ' select font
      20. For A = 1 to 20
      21. Lcdat 1 , A , " Bascom"
      22. waitms 50
      23. Next
      24. $include "font8x8TT.font" ' this is a true type font with variable spacing
      Alles anzeigen
    • manni schrieb:

      tschoeatsch schrieb:

      manni schrieb:

      tschoeatsch schrieb:

      Ist doch hübsch, oder bist du unzufrieden?
      Ich welche Richtung willst du eigentlich shiften und soll das ein längerer Text
      Nach Rechts.
      Ok und etwas detailiert, soll der Text von links nach rechts in den Bildschirm wandern, oder steht er schon da und soll nach rechts aus dem Bildschirm verschwinden?
      So etwa youtu.be/bTamRl7eVWE
      Das schaut aus, als wie wenn der Text nach links wandert a_19_23577ce2 ^^
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • Schreib mal in Zeile 23 ein 'do' und in Zeile 28 ein 'loop' (ohne Anführungsstriche)
      Die komischen Zeichen sind der Zeichensatz, der da ungewollt angezeigt wird.
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • tschoeatsch schrieb:

      manni schrieb:

      tschoeatsch schrieb:

      manni schrieb:

      tschoeatsch schrieb:

      Ist doch hübsch, oder bist du unzufrieden?
      Ich welche Richtung willst du eigentlich shiften und soll das ein längerer Text
      Nach Rechts.
      Ok und etwas detailiert, soll der Text von links nach rechts in den Bildschirm wandern, oder steht er schon da und soll nach rechts aus dem Bildschirm verschwinden?
      So etwa youtu.be/bTamRl7eVWE
      Das schaut aus, als wie wenn der Text nach links wandert a_19_23577ce2 ^Ja








      Ja ich hab es auch grad gemerkt

      tschoeatsch schrieb:

      Das schaut aus, als wie wenn der Text nach links wandert a_19_23577ce2 ^^
      a_28_2c02f089
    • Hallo,
      hier noch eine Möglichkeit.
      Das Display SSD1306 hat ja schon eine eigene Scroll Funktion die man nutzen kann.

      BASCOM-Quellcode

      1. $regfile = "m328pdef.dat"
      2. $hwstack = 32
      3. $swstack = 32
      4. $framesize = 32
      5. $crystal = 16000000
      6. Config Clockdiv = 1 ' make sure the chip runs at 8 MHz
      7. Config Scl = Portc.5 ' used i2c pins
      8. Config Sda = Portc.4
      9. Config Twi = 400000 ' i2c speed
      10. dim a as byte
      11. I2cinit
      12. $lib "i2c_twi.lbx" ' we do not use software emulated I2C but the TWI
      13. $lib "glcdSSD1306-I2C.lib" ' override the default lib with this special one
      14. #if _build < 20784
      15. Dim ___lcdrow As Byte , ___lcdcol As Byte ' dim these for older compiler versions
      16. #endif
      17. Config Graphlcd = Custom , Cols = 128 , Rows = 64 , Lcdname = "SSD1306"
      18. Cls
      19. Setfont Font8x8tt ' select font
      20. Declare Sub Lcd_scroll(byval Start1 As Byte , Byval Ende As Byte , Byval Leftright As Byte)
      21. Declare Sub Lcd_comm_out(byval Comm As Byte)
      22. Declare Sub Scroll_end()
      23. Do
      24. Lcdat 3 , 12 , "1995-2015"
      25. Lcdat 5 , 12 , " MCS Electronics " , 1
      26. Wait 1
      27. Lcd_scroll 0 , 7 , 1
      28. Wait 10
      29. Scroll_end
      30. Cls
      31. Loop
      32. End
      33. '*******************************************************************************
      34. ' Horizontal scrolling
      35. ' Set Page Start1 to Page End 0-->7 (8 Page) Leftright 1=right 0=left
      36. '*******************************************************************************
      37. 'Set Time interval
      38. 'Column shift 2Frames 0x7
      39. 'Column shift 3Frames 0x4
      40. 'Column shift 4Frames 0x5
      41. 'Column shift 5Frames 0x0
      42. 'Column shift 25Frames 0x6
      43. 'Column shift 64Frames 0x1
      44. 'Column shift 128Frames 0x2
      45. 'Column shift 256frames 0x3
      46. '*******************************************************************************
      47. Sub Lcd_scroll(byval Start1 As Byte , Byval Ende As Byte , Byval Leftright As Byte)
      48. If Leftright = 1 Then
      49. Call Lcd_comm_out(&H26) 'Shift right
      50. Else
      51. Call Lcd_comm_out(&H27) 'Shift left
      52. End If
      53. Call Lcd_comm_out(&H00) 'Dummy Byte
      54. Call Lcd_comm_out(start1) 'Start Page
      55. Call Lcd_comm_out(&H07) 'Column shift 2 Frames
      56. Call Lcd_comm_out(ende) 'End Page
      57. Call Lcd_comm_out(&H00)
      58. Call Lcd_comm_out(&Hff)
      59. Call Lcd_comm_out(&H2f) 'Activat Scrolling
      60. End Sub
      61. '*******************************************************************************
      62. ' Stop Scroll
      63. '*******************************************************************************
      64. Sub Scroll_end()
      65. Call Lcd_comm_out(&H2e)
      66. End Sub
      67. '*******************************************************************************
      68. ' Send Command to SSD1306
      69. '*******************************************************************************
      70. Sub Lcd_comm_out(byval Comm As Byte)
      71. I2cstart 'start condition
      72. I2cwbyte &H78 'slave address
      73. I2cwbyte &H00
      74. I2cwbyte Comm
      75. I2cstop
      76. End Sub
      77. $include "font8x8TT.font"
      Alles anzeigen
    • Geht das dann auch Zeilenweise? Ich erkenne nirgends eine Angabe für den y-Bereich (Zeilen können ja unterschiedlich hoch sein).
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • Hm, ich schnall das nicht. Wie hängen jetzt die Parameter Start1 Ende mit den Zeilen, die gescrollt werden zusammen? Und könnte man auch Teile von Zeilen, also einen beliebig breiten Bereich scrollen?
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • Ok, wird für mich jetzt klarer. Ich war auf dem Dampfer, dass ich bei glcd pixelgenau (auch in der Höhe) meinen Text positionieren kann. Ist wohl nicht so, oder nur bei diesem Typ?
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------