LCDs und GLCDs anschließen und ansteuern (BASCOM)

Hallo technikus123!
Daran hatte ich auch schon gedacht. Der PortG hat aber nur 4 Pins beim Mega128 und alles andere ist schon voll belegt.
Der Nibo ist ausserdem komplett mit SMD gefertigt.

Vermutlich erkennt er den RESET nicht, weil er auf einem anderen Port liegt.
Allerdings meckert BASCOM auch nicht.
gruß
 
Hallo Olli55!

Herzlich Willkommen im AVR-Praxis Forum! :ciao:


Vielleicht solltest du dir einfach noch mal D I E S E N Thread durchlesen. ;)

Das Programmbeispiel sollte dir eigentlich weiterhelfen, da das Display (incl. Controller) mit deinem identisch ist!

Die Sache mit dem "Reset" für das Display scheinst du wohl falsch verstanden zu haben. Du musst keinen manuellen Reset ausführen.... dies wird von BASCOM aus automatisch erledigt.... wenn es benötigt wird. ;)

Ob diese Angabe funktioniert:
Code:
Config Graphlcd = 128 * 64sed , 
Dataport = Porta , 
Controlport = Portg , Ce = 0 , Ce2 = 1 , Cd = 3 , Rd = 4 , [B]Reset = Portb.0[/B] , E
bin ich mir auch nicht sicher!
BASCOM verlangt die Angabe für den Datenport und den Controlport.....
Wenn du als Controlport den Port G angibst, erwartet BASCON auch eine gültige Portnummer für den Reset... und nicht plötzlich den PORTB.0 !
Gibt es denn beim Kompilieren des Programmes keine Fehlermeldung? :hmmmm:
Ich muss aber gestehen, dass ich es noch nicht probiert habe.


Schöne Grüße,
Cassio
 
Hallo Olli55!

Ich habe es eben mal ausprobiert und versucht den Reset des Displays auf eine andere Portnummer zu legen....... als eine vom Controlport.

BASCOM merkt dies und will das Programm gar nicht erst übersetzen......
Fehler 202, Line: xy, syntax error , token = (angegebene Portnummer)

Ich denke, dass du deine Pinbelegung noch mal überarbeiten musst. ;)


Grüße,
Cassio
 
Hi Cassio,

dies meinte ich auch. Ich hatte es selber vor ein paar Tagen bei meinem Projekt versucht. In dieser Hinsicht ist Bascom etwas zu starr. Ich hoffe das dies irgendwann etwas flexibler gestaltet wird.

Gruß
Technicus
 
Hallo Cassio, Hallo Technicus!
Danke für die Infos. Das mit dem Reset hab ich dann falsch verstanden. Es geht aber auch nicht, wenn ich es weglasse.
Wenn ich einen Dauerreset dranlege ohne ihn wieder zurückzusetzen tut sich allerings was. Da scheint ein Pixel durchs Bild zu flitzen, mehr aber nicht.

Eine Fehlermeldung wegen des anderen Ports kriege ich allerdings nicht. Ich hab gestern extra noch die neueste BASCOM Version geladen.

Es scheint so zu sein wie ihr sagt, die müssen alle auf einem Port liegen.
Dumm ist halt, dass dieser Port nur 4 Pins hat und alles andere bis zum Rand voll belegt ist. Ich müsste praktisch 6 Portpins umlegen.
Oder ich nehme das Grafikdisplay für ein anderes Board und schließe an den kleinen Robo nur ein 20x4 LCD Textdisplay an, das funktioniert wenigstens.

Was wäre, wenn ich einen Portexpander PCF8574P nehme und das Grafikdisplay über den I2C anschließe.
Hat das schon mal einer mit einem Grafikdisplay probiert?


Übrigens, sind die Displayinfos super!!
Gruß
 
Hallo,

Was wäre, wenn ich einen Portexpander PCF8574P nehme und das Grafikdisplay über den I2C anschließe.
Hat das schon mal einer mit einem Grafikdisplay probiert?
ich schätze mal dann ziehst du den Grafik-Routinen von Bascom den Teppich
unter den Füßen weg :D Das wird dann wohl auf Handarbeit rauslaufen.
Also alles selber machen ;)

Gruß
Dino
 
Hallo Olli55!

Also bei I2C muss ich die Segel streichen......
Damit habe ich immer noch nicht experimentiert.

Muss es denn unbedingt ein Grafik-LCD sein?
Wenn du ein ganz normales LCD benutzt, dann benöigst du natürlich auch viel weniger Pins. Vielleicht reicht das ja zu Beginn?

Mir scheint so, als würdest du den Display-Reset mit dem CLS-Befehl (CLearScreen) verwechseln. :hmmmm:
Der Display-Reset hat aber nichts mit dem Löschen deiner momentanen Anzeige zu tun.


Ich muss gestehen, dass ich mir das Projekt nicht weiter angesehen habe und nun auch nicht weiß, warum schon alle Ports des Mega128 belegt sind. :eek:
Eventuell kann man ja einige Ports tauschen..... was natürlich eine Änderung der gesamten Software zur Folge hätte.

Sollte mir aber noch etwas zu deinem Port-Notstand für das GLCD einfallen, gebe ich dir sofort bescheid. ;)

Grüße,
Cassio
 
Hallo zusammen!
Ich hab jetzt ein ganz normales 4 zeiliges LCD Display (4x20) angeschlossen, das reicht erst mal. Ich will ja nur die Batteriespannung und ein paar Statusmeldungen anzeigen, dafür reicht es allemal aus.
Nun hab ich sogar noch jede Menge Ports frei.
Das mit dem I2C, hast du recht wäre nur im äussersten Notfall, wenn gar kein Pin mehr frei gewesen wäre.
Da ich hier nicht unbedingt ein Grafikdisplay brauche ists ok so. Es war halt eins eingebaut, deswegen wäre es nicht schlecht gewesen, wenns funktioniert hätte.
Mit C gehts ja auch, dort ist es scheinbar Wurscht in welchen Port die Pins liegen, nur kann ich (noch) kein C. Wenn ichs mal können sollte, kann ich es ja wieder aktivieren.

Gruß
Olli
 
Grafikdisplay funktioniert auch

So nun funktioniert auch das Grafikdisplay an einem anderen Board mit Mega32.

Grafikanzeige wie Bilder laden, Linie und Kreis zeichnen => kein Problem.
Nur der normale Text geht noch nicht.

sollte laut BASCOM genauso funktionieren.
Geht aber irgendwie nicht.
Hab ich da was vergessen?

Code:
'--------------------------------------------------------------------------
'Name:      Mega32 GrafikBoard mit Display 128x64
'AVR        Mega32
'Funktion:  Test der Mega32 Platine mit GrafikDisplay
'-------------------------------------------------------------------------
$regfile = "m32def.dat"
$crystal = 14745600
$hwstack = 32
$swstack = 10
$framesize = 40

'Anschluss:
'-----------------------------------------------------------------
'Display                 Mega32
'
'1        GND            GND
'2        Vdd            +5V
'3        Vo             zum 10k Poti Schleifer
'4        DI/CD          PortA.3
'5        Rd/Wr          PortA.4
'6        Enable         PortA.5
'7-14     D0-D7          PortC.0 ... C.7
'15       Cs1            PORTA.1
'16       Cs2            PortA.2
'17       RESET          PORTA.0
'18       Vout           zum Poti , andere Seite Poti auf Minus
'19       Led +          Hintergrundbeleuchtung +
'20       Led -          Hintergrundbeleuchtung -
'-------------------------------------------------------------------------

'-------------------------------------------------------------------------
Dim X As Byte
Dim Y As Byte
$lib "glcdKS108.lbx"

'-- DisplayAnschluss ------------------------------------------------------
'Datenport     = PortC Bit 0...7
'Controllport  = PortA
'                Reset= Bit0
'                CS1=   Bit1
'                CS2=   Bit2
'                DI/Cd= Bit3
'                Rd/Wr= Bit4
'                Enable=Bit5
'Wichtig! Der Kontrollport muss komplett auf einem Port liegen!
Config Graphlcd = 128 * 64sed , Dataport = Portc , Controlport = Porta , Ce = 1 , Ce2 = 2 , Cd = 3 , Rd = 4 , Reset = 0 , Enable = 5

Cls                           ' Löscht das Display

'--- Startbildschirm------------------------------------------------------
For Y = 1 To 30
   Circle(64 , 32) , Y , 1
   Waitms 100
Next
Wait 2
'Zeigt ein Bild
Showpic 0 , 0 , Demo
Wait 2
Cls
'-------------------------------------------------------------------------
'locate sollte auch funktionieren ?
Locate 1 , 1
Lcd "Test .....Grafik"
Locate 2 , 1 : Lcd "0123456789"
Wait 2

Cls Text
' zieht eine Linie PSET X,Y, ON/OFF
' PSET on.off param is 0 to clear a pixel and any other value to turn it on
For X = 0 To 140
  Pset X , 20 , 255           ' set the pixel
Next
Wait 2


'-----------------------------------------------------------------------
Main:
Do

Loop


End
'-------------------------------------------------------------------------
Demo:                         'include BildDaten
$bgf "demo.bgf
 
Hallo Olli55!

Habe ich etwas übersehen, oder hast du die Fontdatei vergessen? :hmmmm:

Ich vermisse das:

Code:
Setfont Font8x8

und

Code:
$include "font8x8.font"

um auch Text darstellen zu können.


Das wäre es, was mir auf die Schnelle dazu einfällt.

Gruß,
Cassio
 
Hallo Olli55!

Gern geschehen! ;)

Nur mal als Hinweis...

Du kannst auch zwei Fontdateien mit einbinden (sofern vorhanden)....
Code:
$include "font8x8.font
$include "font16x16.font


...und dann im Programm mittels:
Code:
Setfont Font8x8

bzw.

Code:
Setfont Font16x16

kleine und große Schriften ausgeben. ;)

Beispiel:
Code:
   If PINX.Y = 1 Then
      Setfont Font8x8
   Else 
      Setfont Font16x16
   End If


Kannst es ja mal ausprobieren.

Grüße,
Cassio
 
Hallo !

Na, bestens ! :)


Dank der Font16x16 kannst du dich auch mal gemütlich zurück lehnen und trotzdem das Display ablesen. :D


Gruß,
Cassio
 
Nokia 3310

Hallo Cassio,
hast du schon ein mal mit ein Nokia 3310 rumgebastelt, ich habe mal eine Testvariante zusammengesteckt, aber es wollte nicht so richtig und daher wieder verworfen.
Aber es ist ein kleines handliches Disply mit 84 x 48 Pixel was auch billig bei Ebay zu bekommen is,t nur der Anschluss ist etwas kompliziert, finde ich.

Gruß Micha

connection Nokia-3310-LCD



Pin 1 VDD - VCC

Pin 2 SCLK - SCK

Pin 3 SDIN - MOSI

Pin 4 D/C - DREQ

Pin 5 SCE - SS

Pin 6 GND - GND

Pin 7 VOUT - 1 or 2.2uF capacitor to GND

Pin 8 RES - RESET (100nF to GND)
 

Anhänge

  • 3310_Pegel.+LED.pdf
    141,6 KB · Aufrufe: 83
Na ja,
keine Antwort ist auch gut, kann ich gleich die nächste Frage stellen.

Hat schon jemand mit diesem Grafik-Display gearbeitet ? DataVision DG-16080-11 von Pollin und auch ein guter Preis.

Gruß Micha
 

Anhänge

  • D120346D.PDF
    157,8 KB · Aufrufe: 84
Na ja,
keine Antwort ist auch gut, kann ich gleich die nächste Frage stellen.

Hallo Neuuser!

Entschuldige, dass man nicht gleich HIER schreit, alle anderen Arbeiten stehen und liegen lässt, um einen Beitrag zu verfassen! :cool:

Irgendwann im letzten Jahr habe ich mal eine Webseite gefunden, auf der das Nokia 3310 Display beschrieben war....

Ich bin allerdings der Meinung, dass du mit Google die Seite ohne große Probleme hättest finden können... wenn du dir mal die Mühe gemacht hättest! ;)


Wie dem auch sei.... Hier mal der Link zur Beschreibung !

Ich finde aber persönlich den Aufwand das Display zu betreiben viel zu aufwendig.... oder anders formuliert----> Selbst geschenkt wäre es mir noch zu teuer!

Gruß,
Cassio
 
Hallo Dino, vielleicht hole ich mir mal so eins zum probieren.

Cassio, schuldige das ich dich nach 3 Tagen darauf hin angesprochen habe und du siehst bestimmt im ersten Satz das ich das nicht so Ernst genommen habe ob du nun gleich darauf antwortest oder nicht.
Ich hatte eine Beschreibung für das Display aber der Link ist nicht mehr aktiv, deiner aber ist mir neu, trotzdem Danke.

Ich finde aber persönlich den Aufwand das Display zu betreiben viel zu aufwendig....

Na, da ist doch eine Aussage.

Gruß Micha
 

Ü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)