Welches Grafik display

    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!

    • Ei,ei,ei ,liebe Bascom Freunde :)
      Jetzt ist da Display angekommen, hab auch gegoogelt, aber um ehrlich zu sein habe ich kein Plan wie ich das LCD am Atmega anschliesen soll und wie ich das in Bascom Programmieren soll dass da auch was im Display angezeigt wird.
      Könnt ihr mir einen Tipp geben wo ich da nach schauen kann?
      Mit einem 2*16 Display habe ich keine Probleme aber ein GLCD ist für mich Neuland ^^
    • Welchen ATMega willst du denn verwenden?

      Für solche Displays gibt es in Stafans Buch (Stefan Hoffmann alias stefanhamburg) Beispiele.

      Wie dieses hier:


      BASCOM-Quellcode

      1. 'Etch A Sketch
      2. $regfile = "m8def.dat"
      3. $crystal = 1000000
      4. $hwstack = 32
      5. $swstack = 10
      6. $framesize = 40
      7. $lib "glcdKS108.lib"
      8. Config Graphlcd = 128 * 64sed , Dataport = Portd , Controlport = Portb , Ce = 2 , Ce2 = 3 , Cd = 0 , Rd = 1 , Reset = 5 , Enable = 4
      9. Cls
      10. Setfont Font8x8
      11. ....
      12. ...
      13. ...
      14. Dim X As Integer , Y As Integer
      15. .....
      16. ...
      17. Lcdat 4 , 2 , "Etch A Sketch(R)"
      18. ...
      19. Cls
      20. Do
      21. .....
      22. ...
      23. Pset X , Y , 1
      24. ....
      25. Pset X , Y , 0
      26. ...
      27. ... Cls
      28. ...
      29. Loop
      30. End
      31. $include "font8x8.font"
      Alles anzeigen
      Edit: Ich weis gar nicht ob ich das veröffentlichen darf :(


      -> Ich habe den Quelltext hier etwas reduziert. Gruß Stefan.
      Eine Lösung habe ich nicht, aber mir gefällt Ihr Problem.

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von stefanhamburg () aus folgendem Grund: Ich habe den Quelltext hier ein wenig reduziert.Gruß Stefanhamburg

    • Der Anschluss steht normal in der Grafik-Config, ich häng dir ein Beispiel an.
      Die Anschlüsse des Displays swelbst findest du im Datenblatt.
      An Vee greifst du die negative Spannung für den Kontrast Vo ab, die erzeugt das Display selbst.

      BASCOM-Quellcode: Feuerwerk

      1. 'Atmega2560 Modul von Crumb45
      2. $regfile = "m2560def.dat"
      3. $crystal = 14745600
      4. $baud = 115200
      5. $hwstack = 64
      6. $swstack = 40
      7. $framesize = 80
      8. Ddrh = 255
      9. Porth = 0
      10. Ddrj = 128
      11. Portj = 0
      12. Ddrl = 255
      13. Portl = 0
      14. Dim Stift As Byte
      15. Dim T1 As Byte , T2 As Byte
      16. Dim Temp As Byte
      17. Const Anzahl = 3
      18. Dim Xpos(anzahl) As Byte
      19. Dim Ypos(anzahl) As Byte
      20. Dim Dm(anzahl) As Byte
      21. Dim Dm_temp(anzahl) As Byte
      22. Dim Status(anzahl) As Byte
      23. Dim Linie(anzahl) As Byte
      24. For Temp = 1 To 20 'Lebenszeichen
      25. Toggle Portj.7
      26. Waitms 50
      27. Next
      28. $lib "glcdKS108.lib"
      29. Config Graphlcd = 128 * 64sed , Dataport = Porth , Controlport = Portl , Ce = 4 , Ce2 = 2 , Cd = 7 , Rd = 6 , Reset = 3 , Enable = 5
      30. Initlcd
      31. Declare Sub Set_grafik(byval X As Byte , Byval Y As Byte , Byval Stift As Byte)
      32. Cls
      33. For Temp = 1 To Anzahl
      34. Xpos(temp) = Rnd(80)
      35. Ypos(temp) = Rnd(20)
      36. Dm(temp) = Rnd(10) + 10
      37. Status(temp) = 2
      38. Next
      39. Do
      40. Stift = 0
      41. For Temp = 1 To Anzahl
      42. If Status(temp) = 2 Then
      43. T1 = Xpos(temp) + 20
      44. T2 = Ypos(temp) + 20
      45. Circle(t1 , T2) , Dm_temp(temp) , 0
      46. If Dm_temp(temp) < Dm(temp) Then
      47. Incr Dm_temp(temp)
      48. Else
      49. Status(temp) = 0
      50. Linie(temp) = 0
      51. End If
      52. End If
      53. If Status(temp) = 1 Then
      54. T1 = Xpos(temp) + 20
      55. T2 = Ypos(temp) + 20
      56. If Linie(temp) = 0 Then
      57. Line(63 , 63) -(t1 , T2) , 1
      58. End If
      59. If Linie(temp) = 3 Then
      60. Line(63 , 63) -(t1 , T2) , 0
      61. End If
      62. Incr Linie(temp)
      63. Circle(t1 , T2) , Dm_temp(temp) , 1
      64. If Dm_temp(temp) < Dm(temp) Then
      65. Incr Dm_temp(temp)
      66. Else
      67. Status(temp) = 2
      68. Dm_temp(temp) = 3
      69. End If
      70. End If
      71. If Status(temp) = 0 Then
      72. Xpos(temp) = Rnd(80)
      73. Ypos(temp) = Rnd(20)
      74. Dm(temp) = Rnd(5)
      75. Dm(temp) = Dm(temp) + 15
      76. Dm_temp(temp) = 3
      77. Status(temp) = 1
      78. End If
      79. Next
      80. Toggle Portj.7
      81. Loop
      82. End
      Alles anzeigen
    • Roli schrieb:

      ok , wieder was gelernt :thumbup:
      Erst mal probieren, ob es auch so geht! Dann kannst du entscheiden, ob du dir das merken sollst ^^
      Raum für Notizen

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

      -----------------------------------------------------------------------------------------------------
    • Nochmal Hilfe bitte:

      Habe es jetzt richtig angeschlossen(Denke ich)
      Wie kann ich jetzt z.B. eine Diagonale linie Zeichnen?Hab ein Atmega 8.
      Nur so zu Testen ob ich auch alles richtig gemacht habe.

      Danke

      Hab einfach mal aus der Bascom_Hilfe rauskopiert :

      Quellcode

      1. 'Etch A Sketch
      2. $regfile = "m8adef.dat"
      3. $crystal = 8000000
      4. $hwstack = 32
      5. $swstack = 10
      6. $framesize = 40
      7. $lib "glcdKS108.lbx"
      8. Config Graphlcd = 128 * 64sed , Dataport = Portd , Controlport = Portb , Ce = 2 , Ce2 = 3 , Cd = 0 , Rd = 1 , Reset = 5 , Enable = 4
      9. Cls
      10. 'Show some text
      11. Lcd "MCS Electronics"
      12. 'And some othe text on line 2
      13. Locate 2 , 1 : Lcd "T6963c support"
      14. Locate 3 , 1 : Lcd "1234567890123456789012345678901234567890"
      15. Locate 16 , 1 : Lcd "write this to the lower line"
      16. Line(0 , 0) -(239 , 127) , 255
      Alles anzeigen
      Display bleibt leer :(

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

    • Roli schrieb:

      Woher bekomme ich den ""glcdKS108.lib"" in mein Baskom ordner ist nur ""glcdKS108.lbx"?
      normal sind sie dort beide. Vielleicht hast du irgendwo einen Haken nicht weg gemacht, bei dem bekannte Dateitypen ausgeblendet werden.

      Roli schrieb:

      Display bleibt leer
      So ein Display ist nicht sehr schnell im Gegensatz zum AVR. Möglicherweise ist es noch nicht bereit und noch im Startvorgang während der AVR schon munter Daten sendet.
      Ich baue deshalb gerne am Anfang eine kleine Wartezeit ein, man kann die Zeit ja mit einer LED überbrücken, damit die paar 100ms nicht zu langweilig sind.
      Auch ein Initlcd ist sicher nicht verkehrt.
      Manche Displays verschlucken sich auch gerne mal und zeigen beim ersten Durchlauf nichts an.
      Dein Programm macht nur einen Durchlauf, dann ist es fertig.
      Ich hatte mein Beispiel gepostet, weil es funktioniert, du kannst natürlich auch andere Beispiele benutzen.
    • So,soweit hat es geklappt.Danke!
      Jetzt habe ich allerdings das Display "2-geteilt"
      hab foldendes Programm:

      Quellcode

      1. $regfile = "m32def.dat"
      2. $crystal = 8000000
      3. $baud = 115200
      4. $hwstack = 64
      5. $swstack = 40
      6. $framesize = 80
      7. Ddrb = 255
      8. Portb = 0
      9. 'Ddrj = 128
      10. 'Portj = 0
      11. Ddrd = 255
      12. Portd = 0
      13. $lib "glcdKS108.lbx"
      14. Config Graphlcd = 128 * 64sed , Dataport = Portb , Controlport = Portd , Ce = 1 , Ce2 = 2 , Cd = 7 , Rd = 6 , Reset = 3 , Enable = 5 , Mode = 8
      15. Initlcd
      16. Cls
      17. Do
      18. Circle(20 , 20) , 19 , 255
      19. Circle(25 , 25) , 10 , 255
      20. Locate 1 , 1
      21. Lcd "text"
      22. Loop
      Alles anzeigen
      Das sollte doch zwei Kreise zeichnen.Auf dem Display kommen aber auf der linken Hälfte und auf der rechten Hälfte jeweils zwei Kreise, als ob es in der Mitte geteilt wäre ^^
      Hat sicher mit Zeile 14 und/oder 15 zu tun?
      Und wieso wird kein Test ausgegeben?

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