PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : LCD SOLOMON LM118KFWL2 problem



igelstein
23.02.2011, 12:26
laßt es mich HIER versuchen.
das LCD hängt original an einem deltawave atmega32 board und ist folgendermaßen fix verLÖTET bzw per leiterbahnen fix verbunden
(ich zähle die LCD-pins von links nach rechts von 1-16, wobei ich nicht sicher bin ob die numerierung auch softwaremäßig so gehandhabt wird):

1 PC.3
2 PC.2
3 PC.1
4 PC.0
5 bis 8 frei
9 PC.6
10 PC.5
11 PC.4
12 Poti Mitte
13 irgendwas :-)
14 Poti GND
15,16 Beleuchtung?

wiegesagt, es ist ein Solomon LM118KFWL2, von dem ich gelesen hab:


"Autor: Benedikt K. (benedikt) (Moderator)
Datum: 31.10.2009 20:02

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

Pin 16 ist Minus. Bei dem Display muss man beachten, dass die
Reihenfolge der Pins nicht 1-16 ist, sondern 16, 15, 1, 2, 3 .... 14.

(http://www.mikrocontroller.net/topic/155496#new)

http://www.goldentek.com.tw/proimages/CHARACTER/GC1602P8.JPG
es stimmt also! von li nach re: 16,15, 1 bis 14

meine frage: wie muss ich die pins konfigurieren (einmal ohne aliase)?
habe praktisch ALLES vesucht:
MIT config PortC = Output, OHNE;
MIT INITLCD, ohne;

Config Lcdpin = pin, db4=PortC.3,.. den rest entsprechend der oben gezeigten hardwaremäßigen zuordnung (E =>PC.5, RS=>PC.4).

Es HATTE nämlich funktioniert, nur hab ich beim ersten (RS232-) programmieren den original-Deltawave-code hinausgeworfen. und jetzt ist es zwar schön beleuchtet, aber ziemlich tot.
wenn ichs schaff, häng ich ein foto an: von vorn, von hinten (horizontal gespiegelt).
liebe grüße
Marcel

Hubert.G
23.02.2011, 14:30
Du hast doch das Datenblatt angehängt. Wenn du das selbst angeschaut hättest würdest du hier nicht diese Frage stellen.
Das Disp hat von rechts beginnend die Pin 16, 15, 1, 2, ............14
1-GND
2-VCC
3-Kontrast
4-RS
5-R/W
6-E
7-D0
.
.
14-D7
In der BASCOM Standardroutine musst du R/W auf GND legen.

igelstein
23.02.2011, 15:18
ok, lieber Hubert.G
das datenblatt, das ich "angehängt habe" ( wo oder wohin?) beantwortet nicht meine frage. auch Du nicht.
wäre es ein standard-LCD, wüßte ich db4=>PC.0 oder so.
Deine numerierung hab ich schon hundertmal in versch. tuts gelesen und AUSPROBIERT. aber es FUNKTIONIERT NICHT.
ich habe gefragt: WIE muss ich konfigurieren ( mit der geänderten pin-reihenfolge beim LCD)? wie muss ich
Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 , E = Portc.2 , Rs = Portc.0 abändern?
verzeih meine unwissenheit, aber ich suche seit 2 tagen fast rund um die uhr. und außerdem: anmeldedatum 8.2.2011.
lg
Marcel

Hubert.G
23.02.2011, 17:08
Jetzt verstehe ich deine Frage nicht ganz.
Du musst ja wissen welcher Pin des Mega32 auf welchen Pin des LCD geht.
Nachdem du weisst welcher Pin am LCD was ist, ist doch auch die Zuordnung gegeben.
Wenn ich mir das Bild so ansehe sollte die Reihenfolge so sein:
Portc.0=DB4, Portc.1=DB5, Portc.2=DB6, Portc3=DB7, Portc.4=RS, Portc.5=R/W, Portc.6=E

igelstein
23.02.2011, 17:19
hollaho, genau das war meine frage, die ZUORDNUNG. und genau die, so wie Du sie hier schreibst, hab ich glaub ich schon 3 mal ausprobiert. allerdings hab ich R/W nicht angegeben.
jetzt die prinzipielle frage: woran erkenne ich am LCD, welches die datenleitungen sind, welches E, welches RS? ich meine hardwaremäßig, NICHT datenblatt, das hatten wir schon.
GND und die 5V kann ich ausmessen. aber die 4 datenleitungen?
ich schnalls halt nicht. das alter!
lg
Marcel

Hubert.G
23.02.2011, 17:32
Die Datenleitung sind bei den Standarddisplay immer gleich.
Erkennen oder messen kann man das nicht.
R/W gibt es im BASCOM nicht, daher auf GND legen. Am einfachsten den Pin auf Ausgang und auf 0.
Alter ist kein Grund, bin auch schon in Ruhestand.

igelstein
23.02.2011, 18:07
alles nachwievor finster.
Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 , Db7 = Portc.3 , Rs = Portc.4 , E = Portc.6 'RW=PortC.5 entfernt! (error!)

ansonsten alles wie vorgeschrieben.
lg
Marcel

Hubert.G
23.02.2011, 18:25
Ist R/W auch auf GND? Sonst geht nichts.
Ausserdem sollte das Display nicht finster sein sondern in der ersten Zeile sollte ein schwarzer Balken sichtbar sein.

igelstein
23.02.2011, 19:46
Ist R/W auch auf GND?

auch DAS: ist das hardwaremäßig gemeint? es hat ja vorher funktioniert, ohne extra kabel und sonstwas!

igelstein
23.02.2011, 20:29
scherz: gibt es ein forum für .... MICH?
schau mal: ich sitz hier in der wüste, hab so ein ding mit allem drum und dran und es funst nicht. was soll ich tun? der pfarrer lächelt mild, der doktor hat keine zeit und die putzfrau scheuert es weg.
erklär mir bitte die sprache:


Ist R/W auch auf GND?

damit Du Dich nicht gefrozzelt fühlst: ich hab schon stundenlang in den verschiedensten threads und foren und communities gegoogelt.
WIE KRIEGE ICH R/W AUF GND???
ein kabel ziehen?
eine lötbahn legen?
jedenfalls: in BASCOM gez nicht-wie Du sagst.
lg
M.

Hubert.G
23.02.2011, 21:45
Ich nehme mal an das in deinem alten Programm der Kontroller R/W gesteuert hat.
Das BASCOM Programm macht das nicht. Also musst du entweder die Verbindung von R/W zum Kontroller trennen und Richtung LCD auf GND legen, mit einem Stück Draht oder wie auch immer.
Oder du sagst dem Kontroller über BASCOM das er den PortC.5 auf GND legen soll.
Warum soll das mit BASCOM nicht gehen? Wie bringst du denn eine Led zum leuchten?

igelstein
24.02.2011, 11:00
dank Dir für Deine hilfe!
hab jetzt - genial - die original-demo (HEX-datei) vom deltawave-board im netz gefunden, draufgespielt und alles ist wieder OK.
jetzt würde mich natürlich der code interessieren. ich nehme an, es ist in C programmiert, da bin ich blank. es sind ein haufen andere dateien dabei (*.c, d, h, lst, makefile und so.
HEX => ASCII gibts genug programme. wie geh ich vor?
lg
Marcel

BMS
24.02.2011, 11:36
Schau doch einfach in die *.c - Dateien. Da steht der Code drin. Dann gibt's noch die *.h-Dateien (Header), das sind eigentlich nur Definitionen und Prototypen von Methoden.
HEX->ASCII führt hier nicht zum Ziel.

igelstein
24.02.2011, 11:39
danke, bin grad dabei!
lg M.

Hubert.G
24.02.2011, 15:04
Da gibt es sicher eine lcd.h Datei in der die Zuordnung steht.

igelstein
25.02.2011, 10:49
:-) danke für Deine geduld! :-)
LCD.h:

#define LCD_PORT PORTC /**< port for the LCD lines */
#define LCD_DATA0_PORT LCD_PORT /**< port for 4bit data bit 0 */
#define LCD_DATA1_PORT LCD_PORT /**< port for 4bit data bit 1 */
#define LCD_DATA2_PORT LCD_PORT /**< port for 4bit data bit 2 */
#define LCD_DATA3_PORT LCD_PORT /**< port for 4bit data bit 3 */
#define LCD_DATA0_PIN 0 /**< pin for 4bit data bit 0 */
#define LCD_DATA1_PIN 1 /**< pin for 4bit data bit 1 */
#define LCD_DATA2_PIN 2 /**< pin for 4bit data bit 2 */
#define LCD_DATA3_PIN 3 /**< pin for 4bit data bit 3 */
#define LCD_RS_PORT LCD_PORT /**< port for RS line */
#define LCD_RS_PIN 4 /**< pin for RS line */
#define LCD_RW_PORT LCD_PORT /**< port for RW line */
#define LCD_RW_PIN 5 /**< pin for RW line */
#define LCD_E_PORT LCD_PORT /**< port for Enable line */
#define LCD_E_PIN 6 /**< pin for Enable line */

#elif defined(__AVR_AT90S4414__) || defined(__AVR_AT90S8515__) || defined(__AVR_ATmega64__) || \
defined(__AVR_ATmega8515__)|| defined(__AVR_ATmega103__) || defined(__AVR_ATmega128__) || \
defined(__AVR_ATmega161__) || defined(__AVR_ATmega162__)
/*
* memory mapped mode is only supported when the device has an external data memory interface
*/
#define LCD_IO_DATA 0xC000 /* A15=E=1, A14=RS=1 */
#define LCD_IO_FUNCTION 0x8000 /* A15=E=1, A14=RS=0 */
#define LCD_IO_READ 0x0100 /* A8 =R/W=1 (R/W: 1=Read, 0=Write */
#else
#error "external data memory interface not available for this device, use 4-bit IO port mode"
ich nehme an, daß der code

#define LCD_IO_DATA 0xC000 /* A15=E=1, A14=RS=1 */
#define LCD_IO_FUNCTION 0x8000 /* A15=E=1, A14=RS=0 */
#define LCD_IO_READ 0x0100 /* A8 =R/W=1 (R/W: 1=Read, 0=Write */
besagt, dass R/W (nur in C verfügbar?!] konfiguriert werden kann.
Bascom verweigert, daher hab ich die (ohnehin immer richtige!) config lcdpin gelassen und wirklich einen R3K von R/W (PC.5) nach GND gehängt, und sieheda, es ward LICHT-
nocheinmal schönen Dank!

Hubert.G
25.02.2011, 10:59
Das schaut nach der lcd-Lib von Fleury aus.
Da gibt es eine Änderung das sie bei Bedarf auch ohne R/W funktioniert.
Aber Hauptsache das es so funktioniert.

igelstein
25.02.2011, 11:08
lcd-Lib von Fleury:

kompliment, ist es auch. ist von deltawave in einer zip samt etlichen anderen demos dabeigewesen (der link dazu; jetzt gibz die deltawaves offenbar nicht mehr).
problem beseitigt, thema geschlossen. danke nochmals :-)