Forum: Mikrocontroller und Digitale Elektronik Mega16 & 128x64 Grafik LCD & Bascom


von Alexander J. (temeon)


Lesenswert?

Hallo liebe leute,

und entschuldigt bitte das ich auch damit ankomme...aber die anderen 
Threads nach denen ich gesucht hatte brachten mich nicht weiter.

Habe ein Grafik LCD ( 
http://www.reichelt.de/?ACTION=3;ARTICLE=31672;PROVID=2402 ) mit nem 
Atmega16 verbunden.
Programmiere mit bascom und bekomme kein einzelnen pixel zum "leuchten"


Angeschlossen ist das LCD so:

1 GND
2 +5V
3 VO -5V über Poti von Vout
4 RS ----> PD3
5 R/W ---> PD2
6 E -----> PD7
7 DB0 ---> PC0
...
14 DB7 --> PC7
15 CS1 --> PD6
16 CS2 --> PD5
17 RESET ->PD4
18 Vout -5V

soweit alles getestet und mehrfach durchgepiept.

nun das "Halle Welt" in Bascom die angabe $lib muss ich auslassen weil 
sonst bekomme ich nen haufen fehlermeldungen(error 5 und 320)
1
$crystal = 1000000
2
'$lib "glcdKS108.LBX"
3
4
Config Graphlcd = 128 * 64 , Dataport = Portc , Controlport = Portd , Ce = 6 , Ce2 = 5 , Cd = 3 , Wr = 5 , Rd = 2 , Enable = 7 , Reset = 4 , Fs = 1 , Mode = 8
5
6
Dim X As Byte , Y As Byte , Z As Byte
7
8
Locate 1 , 1
9
LCD "Hallo world"
Folgendes Problem:

Ohne Controller MCU auf dem LCD, mit MCU  ein Streifen Horizontal von 
einem pixel höhe sonst nix.

ich hoffe ich habe euch für den anfang genug infos gegeben damit ich 
hier um hilfe bitten kann, bin schon am verzweifeln.

mfg alex

von John S. (linux_80)


Lesenswert?

Wenn das ein KS0108 ist, dann sollte auch die entsprechende Lib 
eingebunden sein. Und dann muss auch die Config-Zeile dafür angepasst 
werden.
Wenn dann noch der Takt stimmt, und JTAG richtig gefuset ist, klappt das 
auch mit dem LCD :)

von Rolf I. (for_ro)


Lesenswert?

Wenn es der KS108 ist, dann musst du die Lib reinnehmen und noch einen 
Font-File laden. Der KS108 hat keine interne.

von Alexander J. (temeon)


Lesenswert?

danke soweit scheint das zu klappen....nur jetzt habe ich folgendes 
problem...

ach ja JTAG is abgeschaltet und intern auf 4Mhz getaktet.

1
Error:31 Line 14 Invalid datatype [[0011]0[____FONTTABLE]] , in File..........
ich habe jetzt einige fonts ausprobiert und immer der gleiche fehler.

hier nochmal der code
1
 
2
$regfile = "m16def.dat"
3
4
$framesize = 32
5
$swstack = 32
6
$hwstack = 32
7
8
$crystal = 4000000
9
'$baud = 9600
10
$lib "glcdKS108.lbx"
11
12
13
'Config Graphlcd = 128 * 64 , Dataport = Portc , Controlport = Portd , Ce = 5 , Ce2 = 6 , Cd = 7 , Wr = 5 , Rd = 4 , Reset = 3 , Mode = 6
14
Config Graphlcd = 128 * 64 , Dataport = Portc , Controlport = Portd , Ce = 6 , Ce2 = 5 , Cd = 3 , Wr = 5 , Rd = 2 , Enable = 7 , Reset = 4 , Fs = 1       ', Mode = 8
15
Setfont "8x8"
16
17
Dim X As Byte , Y As Byte , Z As Byte
18
19
Start:
20
21
22
Locate 1 , 1
23
24
Lcd "Hallo world"
25
Wait 3
26
Cls
27
Showpic 0 , 0 , Bild
28
Wait 3
29
Cls
30
Goto Start
31
End
32
33
$include "Font8x8.font"
34
35
 Bild:
36
$bgf "ks108.bgf"
ich verzweifel hier......das kann doch nicht so schwer sein mal was auf 
dem display anzuzeigen.

Bei den 2x16 zeichen LCDs hatte ich nicht solche probleme.

danke im vorraus

von John S. (linux_80)


Lesenswert?

Bei Setfont genau den Namen angeben wie der Font heisst, nicht einfach 
irgendwas, und ohne "" !
Die Config-Zeile passt so auch noch nicht.

Schon mal die Beispiele von Bascom angeschaut, die dabei sind, oder die 
Hilfe ?
Da würde alles schön drin stehen.

von Temeon (Gast)


Lesenswert?

Ja diese zeile habe ich daraus kopiert und abgeändert. ob ich am ende 
der zeile  Mode 8 drinn lasse oder nicht , dabei ändert sich nix.

in der hilfe die config zeile ist auch nicht für lcd's mit Chip select , 
bzw nicht mit 2 chip select leitungen.

der zuletzt beschriebene fehler ist auch bei dem beispiel aus der hilfe.

von Rolf I. (for_ro)


Lesenswert?

Alle funktionierenden Beispiele die ich kenne verwenden die Config-Zeile 
mit sed angehangen

Config Graphlcd = 128 * 64sed , ...

von Alexander J. (temeon)


Angehängte Dateien:

Lesenswert?

okay....das war der fehler........ ich danke euch aus vollem herzen.....


nur jetz habe ich das nächste problem:

wenn bild und test nacheinander zeigen lasse ist die linke hälfte und 
rechte helfte nicht ganz bei einander...... ich schätze das ist nen 
timing problem.

schaut mal aufs angehängte foto....

auf einige zeit lang wirds immer schlimmer.....

villeicht nen externen Quartz in die schaltung einbringen? ob das was 
hilft? oder ist der compiler schuld?

von klaus (Gast)


Lesenswert?

Hallo Alexander,

könntest du einmal deinen genauen Code posten, wie dieser 
funktioniert???

Danke!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.