gLCD PG12032 mit sed1520.lib ansteuern

    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!

    • gLCD PG12032 mit sed1520.lib ansteuern

      Nun habe ich in meiner Bastelkiste dieses Powertip gLCD gefunden. PG12032, 120x32 Pixel
      Der Treiber ist ein SBN1661.... und soll SED1520 kompatibel sein.

      Die Steuerkommandos funktioniere, nur was das Display anzeigt versteh ich nicht.

      Wenn ich das Kommando für die Startzeile auf der z.b. 3.Zeile schicke, reagiert nur der 1.Chip, tausch ich den Chipselekt dann ist es der zweite.

      Bild1: alles ok, Bild2: deutlich ist dieser Versatz der Spalten und Zeilen zusehen, Bild3 nun auch noch der Text (was vorher i.O war, siehe Code.

      Habe auch mal probehalber den Chipselekt vertauscht, dann ist alles spiegelbildlich. :evil:

      Stimmt da was Inder .lib nicht oder was ist da los ?


      BASCOM-Quellcode

      1. ' pg12032
      2. ' Vorlage von Stefan Hoffmann 2009
      3. ' Grafik-LCD Zeichensatz anzeigen
      4. ' LCD an PortD und PortB
      5. '
      6. ' Fontdatei(en) und Bilderdateien im Verzeichnis wie Programm
      7. '
      8. $regfile = "m8def.dat"
      9. $crystal = 1000000
      10. $hwstack = 32
      11. $swstack = 10
      12. $framesize = 40
      13. $lib "glcdsed1520.lbx"
      14. 'First we define that we use a graphic LCD
      15. Config Graphlcd = 120x64sed , Dataport = Portd , Controlport = Portb , Cd = 0 , Rd = 1 , Ce = 2 , Ce2 = 3
      16. 'Graphlcd: Display-Art
      17. 'Dataport: Portname fuer Datenleitungen zum LCD
      18. 'Controlport: Portname fuer Control-Pins
      19. 'CE =CS1 Chip select
      20. 'CE2=CS2 Chip select second chip
      21. 'A0=Data/instruction
      22. 'RD=Read
      23. 'Anschluesse des LCD-Grafik-Moduls
      24. ' LCD Pin anschliessen an
      25. ' 1 VSS GND
      26. ' 2 VDD +5V
      27. ' 3 Vo Kontrast Mitte 10k Poti mit -4,5V gegen +Ub
      28. ' 4 CD (A0) PortB.0
      29. ' 5 RD (R/W ) PORTB.1
      30. ' 6 Ce (E1) PORTB.2
      31. ' 7 Ce2 (E2) PORTB.3
      32. ' 8 n.c.
      33. ' 9-16 DB0-DB7 PORTD
      34. Dim Z_code As Byte
      35. Dim Zeile As Byte
      36. Dim Spalte As Byte
      37. Cls 'Display loeschen
      38. 'Wait 1
      39. Setfont Font8x8
      40. 'Glcdcmd &HE2 , 1 'reset commando für SBN1661G
      41. 'Waitms 100
      42. 'Glcdcmd &HE2 , 2
      43. 'Waitms 100
      44. Do
      45. Lcdat 1 , 1 , "BascomPG12032gLCD"
      46. Wait 5
      47. Cls
      48. Z_code = 31
      49. For Zeile = 1 To 3
      50. For Spalte = 0 To 119 Step 8
      51. Z_code = Z_code + 1
      52. Lcdat Zeile , Spalte , Chr(z_code)
      53. Waitms 250
      54. Next Spalte
      55. Next Zeile
      56. 'Cls
      57. Line(0 , 25) -(119 , 25) , 1
      58. Wait 3
      59. Cls
      60. Loop
      61. End
      62. 'Zeichensatzdatei:
      63. $include "font8x8.font"
      Alles anzeigen
      Dateien
      • pg12030.bas

        (1,67 kB, 10 mal heruntergeladen, zuletzt: )
      • Bild1.jpg

        (49,71 kB, 4 mal heruntergeladen, zuletzt: )
      • Bild2.jpg

        (60,37 kB, 2 mal heruntergeladen, zuletzt: )
      • Bild3.jpg

        (48,96 kB, 2 mal heruntergeladen, zuletzt: )
    • Ich habe auch schon mit diesen Displays gearbeitet. Das Problem sind die 120 Pixel. Die LIB erwartet 128 und will pro Zeile 2x64 verarbeiten. Man hat aber nur 2x60. Wenn man darauf achtet was man ausgibt kann man damit durchaus arbeiten. Um eine Zeile komplett zu füllen muss man den Befehl splitten. Also erst einen für die ersten 60 Pixel und dann einen für die 2.

      Beispiel:

      Quellcode

      1. lcdat 1,1, "ABC" : lcdat 1,61, "DEF"
      2. Line(10 , 1) -(10 , 60) , 1 : Line(10 , 61) -(10 , 120) , 1
    • Michael schrieb:

      daja schrieb:

      Stimmt da was Inder .lib nicht oder was ist da los ?
      Das sch Ding wieder. Vom Pollin, oder?Das Teil ist sehr empfindlich, was die Versorgung angeht, die muss stabil stehen, sonst gibt es Versatz.
      Auch ein korrekt gesetzten Reset ist nötig, soweit ich mich erinnern kann.
      Nix Polin , defekten Durchflußmesser recycelt

      TommyP schrieb:

      Ich habe auch schon mit diesen Displays gearbeitet. Das Problem sind die 120 Pixel. Die LIB erwartet 128 und will pro Zeile 2x64 verarbeiten. Man hat aber nur 2x60. Wenn man darauf achtet was man ausgibt kann man damit durchaus arbeiten. Um eine Zeile komplett zu füllen muss man den Befehl splitten. Also erst einen für die ersten 60 Pixel und dann einen für die 2.

      Beispiel:

      Quellcode

      1. lcdat 1,1, "ABC" : lcdat 1,61, "DEF"
      2. Line(10 , 1) -(10 , 60) , 1 : Line(10 , 61) -(10 , 120) , 1
      Danke. aber , na ja so hatte ich mir das nicht gedacht.