QiangLi matrix RGM Q6.6Eco + Atmega2560

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

    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!

    • Ich habe ein Display und verbinde es mit 2560. Die Bildschirme sind blau, rot, grün, aber wenn ich versuche, Text auf das Display zu bringen, erscheint etwas Seltsames.
      Mitch64, kannst du mir helfen?

      Source Code

      1. ' Projekt: Demo LED-RGB-Matrix 64x32
      2. ' Modul: Main.bas
      3. ' Autor: Mitch64 @ 2024
      4. ' Erstellt: 02.05.2024
      5. ' Geändert: 16.05.2024
      6. ' Version: Beta
      7. '$regfile = "m328pdef.dat"
      8. 'za uro mora biti oscilator: 32768 Hz xtal
      9. '$crystal = 11059200
      10. '$baud = 9600
      11. '$baud = 57600
      12. '$baud = 115200
      13. $regfile = "m2560def.dat"
      14. $hwstack = 64
      15. $swstack = 64
      16. $framesize = 64
      17. $crystal = 16000000 ' Quarz
      18. Config Submode = New
      19. Config Base = 0
      20. '$SIM
      21. 'Waitms 1000
      22. Config Pinb.7 = Output
      23. $include "Include\Setup.inc"
      24. $include "Include\RGB_64x32.inc"
      25. Wait 1
      26. ' ----------------------------------------------
      27. ' Routinen
      28. ' ----------------------------------------------
      29. ' ----------------------------------------------
      30. ' Initialisierung
      31. ' ----------------------------------------------
      32. Enable Interrupts
      33. Call Panel_init()
      34. Call Panel_setbackcolor(color_black)
      35. Call Panel_settextcolor(color_red)
      36. 'Call Panel_Clear()
      37. 'Break
      38. ' Call Panel_Fill(COLOR_BLUE)
      39. ' Call Panel_SetPixel(0 , 0 , COLOR_RED)
      40. ' Call Panel_SetPixel(1 , 0 , COLOR_GREEN)
      41. ' Call Panel_SetPixel(2 , 0 , COLOR_BLUE)
      42. ' Call Panel_SetPixel(0 , 16 , COLOR_RED)
      43. ' Call Panel_SetPixel(1 , 16 , COLOR_GREEN)
      44. ' Call Panel_SetPixel(2 , 16 , COLOR_BLUE)
      45. 'Call Panel_Fill(COLOR_BLUE)
      46. 'Wait 1
      47. Call Panel_setfont(font8x8) ' Font setzen
      48. 'Call Panel_setfont(my6_8)
      49. ' Call Panel_SetChar(10 , 10 , 65 )
      50. Call Panel_settextcolor(color_blue)
      51. Call Panel_settext(3 , 3 , "Bascom-AVR")
      52. Wait 3
      53. 'Call Panel_SetTextColor(COLOR_GREEN)
      54. 'Call Panel_SetText(7 , 9 , "Mai 2024")
      55. 'Call Panel_SetFont(font8x8)
      56. 'Call Panel_SetTextColor(COLOR_CYAN)
      57. 'Call Panel_SetText(10 , 26 , "Mitch64")
      58. ' ------------------------------------------------------------------
      59. ' Hauptschleife
      60. ' ------------------------------------------------------------------
      61. ' Call Panel_SetTextColor(COLOR_RED)
      62. ' Call Panel_SetText(1 , 1 , "Demo RGB" )
      63. ' Call Panel_SetTextColor(COLOR_GREEN)
      64. ' Call Panel_SetText(1 , 9 , "Matrix 64x32 Px" )
      65. ' Call Panel_SetTextColor(COLOR_CYAN)
      66. ' Call Panel_SetFont(font8x8)
      67. 'Call Panel_SetFont(Arial_15x17)
      68. 'Call Panel_SetFont(Tahoma_15x18)
      69. 'Call Panel_SetFontHeight(16)
      70. 'Call Panel_SetTextColor(COLOR_RED)
      71. 'Call Panel_SetBackColor(COLOR_BLUE)
      72. 'Call Panel_SetText(1 , 1 , "AB0Q")
      73. 'Call Panel_SetFont(Arial_15x17)
      74. Do
      75. NOP
      76. ' For i = 64 to -64 Step -1
      77. ' 'Call Panel_Clear()
      78. ' Call Panel_SetText(i , 20 , "Bascom-AVR ")
      79. ' Waitms 100
      80. ' Next
      81. ' Incr _PanelTextColor
      82. ' If _PanelTextColor >= 8 then _PanelTextColor = 1
      83. Wait 1
      84. Call Panel_fill(color_blue)
      85. Wait 1
      86. Call Panel_fill(color_red)
      87. Wait 1
      88. Call Panel_fill(color_green)
      89. Wait 1
      90. Call Panel_fill(color_black)
      91. Wait 1
      92. 'Call Panel_settextcolor(color_red)
      93. 'nop
      94. 'Call Panel_settext(0 , 3 , "Bascom-AVR")
      95. 'Call Panel_settext(7 , 9 , "Aug 2024")
      96. 'Wait 1
      97. Call Panel_settextcolor(color_cyan)
      98. Waitms 100
      99. Call Panel_setfont(font8x8)
      100. Waitms 100
      101. Call Panel_settext(1 , 8 , "Bascom-AVR")
      102. Wait 4
      103. Loop
      104. ' ----------------------------------------------
      105. ' ----------------------------------------------
      106. $include "Fonts\my6_8.font"
      107. $include "Fonts\font8x8.font"
      108. $include "Fonts\Font5x5.font"
      109. $include "Fonts\my12_16.font"
      110. '$Include "Fonts\Arial_15x17.font"
      111. $include "Fonts\Tahoma_15x18.font"
      Display All
      Files
      • ms1.jpg

        (331.06 kB, downloaded 11 times, last: )
      • ms2.jpg

        (566.67 kB, downloaded 14 times, last: )
      • ms3.jpg

        (611.91 kB, downloaded 13 times, last: )
    • Der Original-Code aus Post #115 läuft bei dir?

      Bei mir ist der zumindest gelaufen.

      Wenn der läuft, was hast du zum aktuellen Code geändert?

      Die Textausgabe mit Routine Panel_SetText() basiert auf der Routine Panel_SetPixel().
      Prüfe, ob SetPixel korrekt arbeitet. Der Koordinaten-Ursprung ist oben links.

      Wenn SetPixel nicht korrekt arbeitet, könnte es sein, dass du einen anderen Chip auf dem Modul verwendest?
      Oder eine andere Scanline? Mein Code verwendet 1:16 Scanline mit Matrix 64x32.
    • Vielen Dank für Ihre Antwort. Ich habe dieses Beispiel verwendet.
      Ich habe mit Panel_set pixel nachgesehen, aber nichts ist passiert – die Anzeige blieb schwarz.
      In der Hauptschleife habe ich diesen Teil des Codes hinzugefügt, aber es ist nichts passiert.

      Ich denke, dass ich einige Parameter in Setup-Routinen ändern darf – aber welchen?

      Source Code

      1. ...
      2. Call Panel_setpixel(0 , 0 , Color_red)
      3. Wait 1
      4. Call Panel_setpixel(1 , 0 , Color_green)
      5. Wait 1
      6. Call Panel_setpixel(2 , 0 , Color_blue)
      7. Wait 1
      8. Call Panel_setpixel(0 , 16 , Color_red)
      9. Wait 1
      10. Call Panel_setpixel(1 , 16 , Color_green)
      11. Wait 1
      12. Call Panel_setpixel(2 , 16 , Color_blue)
      13. Wait 1
      Display All
      Nur die Befehle funktionieren richtig:

      Call Panel_fill(color_blue)
      Wait 1
      Call Panel_fill(color_red)
      Wait 1
      Call Panel_fill(color_green)
      Wait 1
      Call Panel_fill(color_black)
      Wait 1


      Wenn ich den Befehl verwende:

      Call Panel_settext(1 , 8 , "Bascom-AVR")
      Wait 4


      Ein Teil des Displays blinkt sehr schnell und es scheint, dass ein Teil des Textes angezeigt wird (siehe Bild im vorherigen Beitrag).

      Wenn ich mich hinsetze

      Call Panel_settext(1 , 1 , "Bascom-AVR")
      Wait 4
      es passiert auch nichts

      The post was edited 1 time, last by smatjaz ().

    • Jetzt habe ich herausgefunden, dass, wenn ich den letzten Befehl verwende,

      Call Panel_fill(color_yellow)
      Wait 1

      und kein

      Call Panel_fill(color_black)
      Wait 1

      Text erscheint, sondern sehr schnell blinkt,

      auch Pixel einstellen - es blinkt sehr schnell.

      Sie können es im beigefügten Bild sehen.
      Files
      • ms4.jpg

        (589.49 kB, downloaded 9 times, last: )
    • Hast du ein Datenblatt zu deinem Display?
      Es scheint so als ob die Ansteuerung anders sein muss an deinem Display.

      Wie ist die Steckerbelegung mit den RGB Anschlüssen und den Pins ABCD?
      Stimmen die Farben, wenn du Panel_Fill(Farbe) verwendest?

      Ist dein Display ein 1/16 Scan oder ein 1/32?

      Edit:
      Welche Bascom-Version verwendest du?
      Welche Hardware verwendest du? Arduino Mega?
      Bist du sicher, dass der Controller mit der Frequenz, die mit Crystal angegeben ist, läuft?
      Was hast du an PinB.7 (Als Ausgang konfiguriert) angeschlossen?

      The post was edited 1 time, last by Mitch64 ().

    • Mitch64. Vielen, vielen, vielen Dank für Ihre Hilfe.
      Jetzt funktioniert alles einwandfrei.
      Das Problem war, dass die Pins auf Ihrem Schaltplan anders sind als die echten auf Arduino Mega2560.

      Ich verwende eine Arduino Mega2560-Platine und habe auf dem Datenblatt nicht den richtigen Pinh.6 statt Pinb.6 gesehen.

      Ich brauche eine Brille :)

      P.S.
      Noch eine Frage:
      Ist es notwendig, dass die Pins ABCD und R1 G1 B1 G2 für den gleichen Port PortA, PortB in der gleichen Reihenfolge sind, oder ist das nicht von den Ports/Pins abhängig?
      Files
      • Anschluss.jpeg

        (315.76 kB, downloaded 11 times, last: )
    • smatjaz wrote:

      Ist es notwendig, dass die Pins ABCD und R1 G1 B1 G2 für den gleichen Port PortA, PortB in der gleichen Reihenfolge sind, oder ist das nicht von den Ports/Pins abhängig?
      Wenn du in der Include-Datei "RGB_64x32.inc" bei den Pins nachschaust,
      müssen die rgb-Pins ab Bit 0 aufsteigend an einem Port angelegt sein.
      Gleiches gilt für die Multiplex-Adressen mit den Pins A - D. Aus hier an einem Port und ab Bit 0.
      Es sind entsprechende Kommentare im Code angegeben.

      BASCOM Source Code: z:b. Scanline-Adress-Pins müssen an einem Port deiner Wahl ab Bit 0 liegen.

      1. ' Panel Adress-Pins (Zeilenadressierung)
      2. ' Block zusammen-hängend an einem Port beginnend ab Bit 0
      3. pin_PanelAdr_A Alias PortF.0
      4. pin_PanelAdr_B Alias PortF.1
      5. pin_PanelAdr_C Alias PortF.2
      6. pin_PanelAdr_D Alias PortF.3
      7. port_ScanLine Alias PortF

      Das hat den Hintergrund dass bei der Ausgabe der Matrix direkt der Port-Wert ausgegeben werden kann für Scanline und RGB-Werte.
      Das habe ich aus Performance-Gründen gemacht.

      Wenn du das ändern willst, ist das möglich mit Anpassung der Ausgaberoutine. Das geht aber auf Kosten der Performance.

      Die einzigen Leitungen, die du frei wählen kannst sind die Steuerleitungen:

      BASCOM Source Code

      1. ' Panel Steuer-Leitungen
      2. pin_PanelCLK Alias PortF.4
      3. pin_PanelLatch Alias PortF.5
      4. pin_PanelOE Alias PortF.6

      Wie viele Module willst du denn kaskadieren und in welcher Anordnung x und y?

      The post was edited 1 time, last by Mitch64 ().

    • Ich habe ein 32x14 (P-10) LED-Panel, das einem 64x32 ähnelt
      Die LED-Anzeige ist monochrom (weiß). Die Kommunikationsschnittstelle ist bei beiden LED-Anzeigen gleich.

      Ich frage mich, wie ich „RGB64x32.inc“ ändern kann, damit die LED funktioniert?

      Wenn ich einen Text schreibe, ist zwar etwas sichtbar, aber die Schrift ist nicht korrekt. Die folgenden Befehle funktionieren ordnungsgemäß:

      Call Panel_fill(color_white)
      Call Panel_fill(color_black)




      Die Hauptschleife sieht folgendermaßen aus:

      Source Code

      1. Do
      2. Call Panel_setfont(font8x8)
      3. Call Panel_fill(color_white)
      4. Wait 5
      5. Call Panel_fill(color_black)
      6. Wait 5
      7. Call Panel_settext(1 , 1 , "Info")
      8. Wait 5
      9. Loop
      Display All



      Anbei ein Bild wie das auf dem Display aussieht.

      Mitch, kannst du mir bitte helfen, „RGB64x32.inc“ zu ändern, damit dies funktioniert.

      Files
    • smatjaz wrote:

      Ich habe ein 32x14 (P-10) LED-Panel, das einem 64x32 ähnelt
      Die LED-Anzeige ist monochrom (weiß). Die Kommunikationsschnittstelle ist bei beiden LED-Anzeigen gleich.

      Ich frage mich, wie ich „RGB64x32.inc“ ändern kann, damit die LED funktioniert?
      Das frage ich mich auch.
      Ich kenne dein Display nicht (Datenblatt?)

      Außerdem muss ein Font aktiviert werden, der da verwendet werden soll.
      Das sehe ich an deinem Code nicht. Vielleicht solltest du mal den ganzen Code einstellen.

      Und zu guter Letzt muss man wissen, dass die Routinen für das RGB-Display geschrieben sind. D.h. sie berücksichtigen die Anatomie des Displays.
      Wenn sich die Anatomie ändert, können auch die Routinen nicht mehr gehen.
      Wie die anzupassen sind ist also vom Display abhängig, wie das anzusteuern ist und wie die Organisation der LED's auf dem Panel ist.