LCDs und GLCDs anschließen und ansteuern (BASCOM)

Hallo Michael!

Wenn es ein GLCD ist, dann wird das mit dem 4bit-Modus wohl nicht funktionieren.
Nimm mal die "üblichen" 8bit-Ansteuerungen für GLCD`s, die hier auch eingestellt sind.

Ansonsten.... bring es einfach mal mit und wir schauen da mal gemeinsam drüber.
Mal sehen, ab wann es mit uns "spricht" und ggf. Rauchzeichen von sich gibt. :D ;)

Gruß,
Cassio
 
Hi Cassio,

ich bring's mit.


Grüsse,

Michael
 
Hi Casssio/ All

das Display (MGLS-240128) habe ich vom Steuerboard getrennt. Leider sind beim Wegbraten des Lackes ein paar Lötaugen abgelöst; muss ich also etwas reparieren.

Ich hab erstmal GND, VDD und VO (Minus-Spannung) angeschlossen, aber es tut sich nichts. Müssen bei einem GLCD alle Anschlüsse verbunden werden, bevor etwas zu sehen ist? Falls nicht, ist das Display wohl leider defekt.


Grüsse,

Michael
 
Hi Michael,

Ich hab erstmal GND, VDD und VO (Minus-Spannung) angeschlossen, aber es tut sich nichts. Müssen bei einem GLCD alle Anschlüsse verbunden werden, bevor etwas zu sehen ist? Falls nicht, ist das Display wohl leider defekt.
bei meinen tut sich auch was ohne die Datenanschlüsse. Also nur Vcc/GND/Vo.
Leg mal beim Vo nen 10k in Reihe (zur Sicherheit) und dann stell mal bei Vo
von -10V bis +10V durch. Wenn dann immer noch nix kommt dann ist die
Wahrscheinlichkeit leider relativ hoch das es hin ist. Bei meinem mit T6963 ist
ja auch erst bei -7..-8V was zu sehen gewesen.

Gruß
Dino
 
Hi Dino,

bei meinen tut sich auch was ohne die Datenanschlüsse. Also nur Vcc/GND/Vo.
Leg mal beim Vo nen 10k in Reihe (zur Sicherheit) und dann stell mal bei Vo
von -10V bis +10V durch. Wenn dann immer noch nix kommt dann ist die
Wahrscheinlichkeit leider relativ hoch das es hin ist. Bei meinem mit T6963 ist
ja auch erst bei -7..-8V was zu sehen gewesen.

Iich hatte nur 5V angeschlossen, jedoch mit dem 100µF- Elko zwischen GND und Vo. So, wie ich es erhalten habe. Deshalb bin ich davon ausgegangen, das es so seit ca. 10 Jahren funktioniert hat.
Auf dem Karton stand "...friert ein". Das hatte ich auf ein defektes IC auf dem Motherboard bezogen. Es kann aber auch ein defekter Grafikkontroller des GLCD gemeint sein.

Ich probier's dann nochmal mit Deinem Vorschlag.


Grüsse,

Michael
 
Hi Dino,

ganz schwach konnte ich für einen Moment einige dunkle Felder erkennen. Ich hab es wie auf dem Steuerboard angeschlossen: 5V -> 10K -> VDD/RST, der 100µ zwischen VSS und Vo.
Jetzt stellt sich die Frage, ob es sich lohnt, die Leiterbahnen freizukratzen und die Drähte direkt draufzulöten; die Anschlüsse haben beim Entlöten halt ein wenig gelitten.


Grüsse,

Michael
 
Hi Michael!

Ich würde das ruhig mal probieren.
Ein wenig den Lack auf den Leiterbahnen entfernen und die drei Drähte dort direkt anlöten.

Wenn du dann die Pixel mit dem Kontrast sichtbar machen kannst, lohnen sich auch weitere Maßnahmen um alle Kontakte wieder sicher herzustellen.

Wäre echt schade, wenn es defekt ist. Es sah so verdammt gut und "neu" aus.


Gruß,
Cassio
 
Hi Cassio,

ja, wär wirklich schade; ich probier's. Wird jedoch etwas dauern. Also etwas Geduld bitte.


Grüsse,

Michael
 
Hallo Leute,

ich bin hier grade am Verzweifeln.. Ich versuche das GLCD 12232-4 von Pollin mit Hilfe von Cassios Beitrag anzusteuern. Anfangs konnte ich mal neben wirren Zeichen die Zeichenfolge "Hello World" erkennen. Doch nun treten bei eingestecktem Controller nicht einmal mehr die Pixel vom Kontrast hervor. Nur wenn der Controller entfernt wird. Erstmal mein Code:

Code:
$regfile = "m8def.dat"
$crystal = 16000000

$hwstack = 100                                              ' default use 32 for the hardware stack
$swstack = 100                                              'default use 10 for the SW stack
$framesize = 100

Config Portd.0 = Output

Portd.0 = 1

Waitms 500

' *****************************************************
$lib "glcdSED1520.lib"

Config Graphlcd = 120 * 64sed , Dataport = Portb , Controlport = Portd , Ce = 5 , Ce2 = 6 , Cd = 3 , Rd = 4

'The dataport is the portname that is connected to the data lines of the LCD
'The controlport is the portname which pins are used to control the lcd
'CE =CS  Chip Enable/ Chip select
'CE2= Chip select / chip enable of chip 2
'CD=A0   Data direction
'RD=Read
' *****************************************************

Waitms 500

Glcdcmd &H3E , 1 : Glcdcmd &H3E , 2                         ' both displays off
Cls
Waitms 100
Glcdcmd &H3F , 1 : Glcdcmd &H3F , 2                         'both on



Do

   Cls

   Setfont Font8x8
   Lcdat 2 , 1 , " Hello World "

   Toggle Portd.0

   Wait 1

Loop




$include "font8x8.font"
$include "font16x16.font"

Das Programm bleibt merkwürdigerweise einfach stehen :hmmmm: . Wenn ich RD (E) an Vcc oder GND halte, erscheinen kurze Steifen und das Display geht irgendwie aus, oder so..

Jetzt habe ich durch Zufall über Google noch diesen Thread hier gefunden. Lustigerweise hatte Cassio wohl die gleichen Probleme wie ich. Allerdings hat er eine Lösung gefunden und ich schaffe es nicht, seine Lösung zum Laufen zu bekommen..

Cassio, kann es sein, dass du eine neuere LIB hast, oder diese modifizierte, von der du in dem anderem Thread gesprochen hast?

Dieses Display ist so merkwürdig.. :rolleyes:

Fynn
 
Dieses Display ist so merkwürdig.. :rolleyes:

Hallo Fynn !

Da hast du dir aber auch nicht gerade das einfachste Display ausgesucht. :cool:

So wie ich es im Beitrag Nr. 3 gezeigt und beschrieben habe funktioniert das Display auch! ;)

Allerdings ist es ziemlich empfindlich, was das Timing, statische Ladungen und Signalpegel betrifft!
Keine Sorge, es ist deswegen nicht defekt....... nur etwas "durcheinander".

Hast du dir den Beitrag Nr. 90 mal durchgelesen? Klick mal HIER !
Dort habe ich schon mal etwas dazu geschrieben.

Musst halt mal ein wenig rumspielen! ;)

Gruß,
Cassio

PS:
Ach so....
Deinen Programmcode hatte ich mir nun auf die Schnelle nícht angesehen. :eek:
 
Hallo Cassio,

ich habe deinen Code 1 : 1 übernommen, und es nochmals versucht, aber leider ohne Besserung. Ich werde dann wohl für mein Projekt ein 2 * 16 Zeichen-Display nehmen :rolleyes:

Vielleicht werde ich es später nochmal versuchen.. Trotzdem danke für den Link zu Beitrag 90. Leider hat mich aber auch das einfach nicht weiter gebracht. :eek:

Viele Grüße,

Fynn
 
Hallo Fynn!

Ich muss zwar gleich weg, aber.......


Wenn du meinen Code aus Beitrag 1:1 übernommen hast...
Verwendest du nun auch einen Mega16?
Denk beim Mega16 bitte daran den JTAG per FUSES abzuschalten (Bit 0) !!!

Wird schon werden....

Gruß,
Cassio
 
Hallo Fynn,
ich habe damals die soft auf ein mega 16 auf gespielt und es funktionierte gut, der Anhang ist ohne Touchfunktion nur als einfaches Display, probiere es doch noch ein mal.

Nur mit meinen Display komme ich zur zeit nicht weiter, das 128x64 mit Touch, ich habe das Beispielprogramm von der bascom Seite verwendet und es ist einfach nicht in gange zu bekommen ist mir ein Rätsel, warum nicht.

Zwei andere kleine Testprogramme, eins von Cassio und ein selbst erstelltes funktionieren, aber nicht das große mit Touchfuntion.
ich dachte ich finde mal ein Touch Testprogramm ob wenigstens das funktioniert.


gruß micha
 

Anhänge

  • für text.zip
    23,8 KB · Aufrufe: 20
so, wen ich nun im Programm die Anweisungen Selekt Case aus kommentiere, läuft wenigstens das Hauptfenster an, aber das bringt nun ja nicht viel.
Warum es damit nicht zurecht kommt, kann ich nicht sagen ;(
Es ist zum verrückt werden.

Gruß
Code:
Do

'*************************
' Here your main prog
'*************************
 Gosub Readtouch                                            ' Read the touch cordinates
 Gosub Whichkey                                             ' Which key is pressed
If Menu > 1 Then                                            ' Starts the timer if the menu is not the Mainmenu
    Start Timer1
Else
   Stop Timer1
End If

If Keypressed > 0 Then                                      ' Key is pressed
 Select Case Menu                                           ' Depends on the menu that we are in what to do with the pressed key
 [B] Case 1 : Select Case Keypressed                           'Mainmenu
                  Case 11 : Print " You pressed key: " ; Keypressed ; " in menu: " ; Menu
                  Case 12 : Print " You pressed key: " ; Keypressed ; " in menu: " ; Menu
                  Case 13 : Print " You pressed key: " ; Keypressed ; " in menu: " ; Menu
                  Case 21 : Print " You pressed key: " ; Keypressed ; " in menu: " ; Menu
                  Case 22 : Print " You pressed key: " ; Keypressed ; " in menu: " ; Menu
                  Case 23 : Gosub Showlichteettafelmenu     ' Shows a sub menu
                  Case 31 : Print " You pressed key: " ; Keypressed ; " in menu: " ; Menu
                  Case 32 : Print " You pressed key: " ; Keypressed ; " in menu: " ; Menu
                  Case 33 : Print " You pressed key: " ; Keypressed ; " in menu: " ; Menu
                  Case 41 : Print " You pressed key: " ; Keypressed ; " in menu: " ; Menu
                  Case 42 : Print " You pressed key: " ; Keypressed ; " in menu: " ; Menu
                  Case 43 : Print " You pressed key: " ; Keypressed ; " in menu: " ; Menu
                  End Select[/B]

[B]Case 13 : Select Case Keypressed                            'LichtEetafelmenu (menu 13)
                  Case 11 : Print " You pressed key: " ; Keypressed ; " in menu: " ; Menu
                  Case 12 : Print " You pressed key: " ; Keypressed ; " in menu: " ; Menu
                  Case 13 : Gosub Showmainmenu              ' Back to the mainmenu
                  Case 21 : Print " You pressed key: " ; Keypressed ; " in menu: " ; Menu
                  Case 22 : Print " You pressed key: " ; Keypressed ; " in menu: " ; Menu
                  Case 23 : Print " You pressed key: " ; Keypressed ; " in menu: " ; Menu
                  Case 31 : Print " You pressed key: " ; Keypressed ; " in menu: " ; Menu
                  Case 32 : Print " You pressed key: " ; Keypressed ; " in menu: " ; Menu
                  Case 33 : Print " You pressed key: " ; Keypressed ; " in menu: " ; Menu
                  Case 41 : Print " You pressed key: " ; Keypressed ; " in menu: " ; Menu
                  Case 42 : Print " You pressed key: " ; Keypressed ; " in menu: " ; Menu
                  Case 43 : Print " You pressed key: " ; Keypressed ; " in menu: " ; Menu

                  End Select[/B]
        End Select

 Keypressed = 0                                             ' Key is processed so put it back to 0
End If

Loop
 

Anhänge

  • READINGTOUCHSCREEN.bas
    10,4 KB · Aufrufe: 12
hallo,
hat niemand eine Ahnung woran das liegen könnte, habe die tage alles noch ein mal probiert, es will einfach nicht mit der Case Anweisung funktioniert,

gruß micha
 
Hi Micha,

ich hab mal kurz drübergesehen. Ich tippe mal das BASCOM keine
verschachtelten Select-Case-Anweisungen mag. Also bei jedem Case der
ersten Ebene rausspringen, dann außerhalb das zweite Case machen und
nach dem 2ten Case wieder zurückspringen.

Also alles "manuel" über Sprünge ineinanderschachteln.

Oder du machst die innenliegende Select-Case über If-Elsif-Else-Endif

BASCOM hat mit Verschachtelungen sowieso manchmal anscheinend ein paar
Problemchen. If-Then-Else kann es und For-Next anscheinend auch. Aber
bei anderen Sachen wäre ich vorsichtig.

Gruß
Dino
 
hallo dino,
ich habe dieses so ähnlich schon probiert, aber ich habe es nun mal so gemacht.
meintest du erst mal so ?

Code:
If Keypressed > 0 Then
 Select Case Menu
  Case 1 : Select Case Keypressed

                  Case 23 : Gosub Showlichteettafelmenu

                  End Select
        End Select

 Keypressed = 0                                             ' Key is processed so put it back to 0
End If

so springt das LCD zumindestens noch an, aber wen ich diese untere Variante nehme geht wieder nichts.

Code:
If Keypressed > 0 Then
 Select Case Menu
  Case 1 : Select Case Keypressed

                  Case 21 : Print " You pressed key: " ; Keypressed ; " in menu: " ; Menu

                  End Select


        End Select

 Keypressed = 0
End If

gruß micha
 
Hi Micha,

was Dino meinte, ging wohl in folgende Richtung:

Code:
 If Menue = 1 then                                         
     Select Case Keypressed                           'Mainmenu
                  Case 11 : Print " You pressed key: " ; Keypressed ; " in menu: " ; Menu
                  Case 12 : Print " You pressed key: " ; Keypressed ; " in menu: " ; Menu
                  Case 13 : Print " You pressed key: " ; Keypressed ; " in menu: " ; Menu
                  Case 21 : Print " You pressed key: " ; Keypressed ; " in menu: " ; Menu
                  Case 22 : Print " You pressed key: " ; Keypressed ; " in menu: " ; Menu
                  Case 23 : Gosub Showlichteettafelmenu     ' Shows a sub menu
                  Case 31 : Print " You pressed key: " ; Keypressed ; " in menu: " ; Menu
                  Case 32 : Print " You pressed key: " ; Keypressed ; " in menu: " ; Menu
                  Case 33 : Print " You pressed key: " ; Keypressed ; " in menu: " ; Menu
                  Case 41 : Print " You pressed key: " ; Keypressed ; " in menu: " ; Menu
                  Case 42 : Print " You pressed key: " ; Keypressed ; " in menu: " ; Menu
                  Case 43 : Print " You pressed key: " ; Keypressed ; " in menu: " ; Menu
      End Select
 Endif

 If Menue = 13 then      
    Select Case Keypressed                            'LichtEetafelmenu (menu 13)
                  Case 11 : Print " You pressed key: " ; Keypressed ; " in menu: " ; Menu
                  Case 12 : Print " You pressed key: " ; Keypressed ; " in menu: " ; Menu
                  Case 13 : Gosub Showmainmenu              ' Back to the mainmenu
                  Case 21 : Print " You pressed key: " ; Keypressed ; " in menu: " ; Menu
                  Case 22 : Print " You pressed key: " ; Keypressed ; " in menu: " ; Menu
                  Case 23 : Print " You pressed key: " ; Keypressed ; " in menu: " ; Menu
                  Case 31 : Print " You pressed key: " ; Keypressed ; " in menu: " ; Menu
                  Case 32 : Print " You pressed key: " ; Keypressed ; " in menu: " ; Menu
                  Case 33 : Print " You pressed key: " ; Keypressed ; " in menu: " ; Menu
                  Case 41 : Print " You pressed key: " ; Keypressed ; " in menu: " ; Menu
                  Case 42 : Print " You pressed key: " ; Keypressed ; " in menu: " ; Menu
                  Case 43 : Print " You pressed key: " ; Keypressed ; " in menu: " ; Menu
     End Select
 Endif

Schönen Gruss
Markus
 
Hi Micha,

ich habe dieses so ähnlich schon probiert, aber ich habe es nun mal so gemacht.
meintest du erst mal so ?
Nein.

sondern so ...

Code:
 Select Case Menu
  Case 1 : 

[B]      if Keypressed = 23 then
          Gosub Showlichteettafelmenu
      elsif keypressed = 24 then
          gosub irgendwasanderes
      else
          gosub wastotalanderes
      endif
[/B]
    end select

einfach das innenliegende Case durch einen If-Then-Else-Konstrukt ersetzen.

Gruß
dino
 
Hi Markus,

was Dino meinte, ging wohl in folgende Richtung:
so kann man es auch machen ;)

Ob man jetzt den Select-Kram außen und das IF-Zeugs innen macht oder
andersrum ist eigentlich wurscht. Auf jeden Fall hat es der Compiler dann
einfacher den ganzen Krempel auseinanderzuhalten.

Gruß
Dino
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)