Hallo,
ich habe ein atmega16 nach Anweisung von Fleury angeschlossen und
benutze die mitgegebene Library. Ich will damit ein ST7036 (4bit,
2-lines) ansprechen Ich habe entsprechend den Anweisungen
initialisiert, also
#define XTAL 4000000
#define LCD_LINES 2
#define LCD_DISP_LENGTH 16
#define LCD_LINE_LENGTH 0x40
#define LCD_START_LINE1 0x00
#define LCD_START_LINE2 0x40
#define LCD_WRAP_LINES 0
#define LCD_IO_MODE 1
#if LCD_IO_MODE
#define LCD_PORT PORTB /**< 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 */
eingetragen und will das mitgelieferte 'test_lcd' benutzen aber
leider passiert nichts. Hat irgendjemand schon mal dieses Display
benutzt und eine Idee woran es liegen könnte?
Hallo,
bist Du weiter gekommen?
ich habe nun das selbe Problem.
Nach dem Programmieren steht zwar was auf dem LCD, aber nach einem
Reset ist alles weg.
Gruß Toby
Hi Nochmal,
da es ein etwas anderer controler ist, muß man diesen Wohl anders
initialisieren.
Im Datenblatt steht zB. zur 4 Bit Mode Initialisierung folgendes :
Power On
Wait some Time >40ms
Function set
RS RW DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 0 0 0 1 1 0 0 0 0
Wait some Time >1,6ms
Function set
RS RW DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 0 0 0 1 1 X X X X
Wait some Time >26,3us
Function set
RS RW DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 0 0 0 1 1 X X X X
Wait some Time >26,3us
Function set
RS RW DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 0 0 0 1 0 X X X X
Wait some Time >26,3us
Function set
RS RW DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 0 0 0 1 0 X X X X
0 0 N DH IS2 IS1 X X X X
Wait some Time >26,3us
Internal OSC frequenzy
RS RW DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 0 0 0 0 1 X X X X
0 0 BS F2 F1 F0 X X X X
Wait some Time >26,3us
Contrast Set
RS RW DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 0 0 1 1 1 X X X X
0 0 C3 C2 C1 C0 X X X X
Wait some Time >26,3us
Power/ICON/Contras Control
RS RW DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 0 0 1 0 1 X X X X
0 0 Ion Bon C5 C4 X X X X
Wait some Time >26,3us
Follower control
RS RW DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 0 0 1 1 0 X X X X
0 0 Fon Rab2 Rab1 Rab0 X X X X
Wait some Time >26,3us
Display On/Off Control
RS RW DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 0 0 0 0 0 X X X X
0 0 1 D C B X X X X
So, das soll die Initialisierung sein.
Und was bitte ist mit dem E (Enable) Pin wären der Zeit,
wo ich die Daten sende, und warte?
Vielleicht kann mir jemand sagen, wie ich die Radig oder Fleury Lib
umschreiben muß?!
Bei der Fleury Lib kann man wenigstens die Pins frei wählen.
Bei Radig ist das schon etwas schwerer, denke ich.
Ich habe folgende Pin Belegung :
PA7 PA6 PA5 PA4 PA3 PA2 PA1 PA0
DB7 DB6 DB5 DB4 --- E R/W RS
Und ich programmiere mit Win AVR.
Gruß Toby
Hallo,
Leidensgenosse. Ich bin dazu übergeggangen mir meine eigene Lib zu
schreiben, da ich mit der Fleury-Lib das Display auch nicht zum Laufen
kriege. Leider bin ich noch nicht fertig. Trotzdem versuche ich mal dir
Antwort zu geben.
Die Enable Leitung muss bevor man etwas an die Datenregister schickt
auf high gesetzt werden and nach dem Setzen der Datenregister wieder
zurück auf low. Erst durch das Setzen von high-low werden die Daten
übernommen. Das Ganze ist nicht explizit beschrieben sondern nur durch
eine Grafik im Datenblatt dokumentiert. Leider habe ich das jetzt
nicht zur Hand um dir ganz genau die Seite zu sagen. Wichtig ist, dass
die Datenleitung für jedes Nibble auf high-low gesetzt werden muss.
Das Ganze schreibt dir ein noch blinder, der hofft dass er bis Ende der
Woche ein funktionierendes Display hat.
Also wenn der Kontroller HD44780 Kompatibel ist klappt das gaaaanz
bestimmt mit der Fleury Lib - die hab ich erst vergangene Woche
benutzt.
Grüße,
Stefan
PS: Acho als Pinbelegung hab ich display D4..7 auf Port pin 0..3
gelegt.
und auch die lcd.h entsprechend angepasst. Dort steht auch nochmal ein
Verweis auf die quartz - Frequenz drinne wege delays, die das Display
brauch.
Grüße,
Stefan
Hallo,
habe ebenfalls probleme mit dem ST7036-Controller.
Hab bisher nur I2C-LCDs angesteuert, und bin sozusagen Neuling
im Gebrauch der 4bit-Ansteuerung.
Im Datenblatt des ST7036 erscheint mir bei der Initialisierung im
Assembler-Code-Beispiel etwas merkwürdig.
Dort werden bei den 4 Function-Sets nur jeweis die oberen 4 Bits
übertragen; und bei den weiteren Registern beide Halb-Bytes
(erst die oberen, und dann die unteren 4Bits). ?!?
Ich weiß nicht wie das bei anderen Displays im 4Bit Mode funktioniert.
Hab mein Programm mal angehängt(hier nur 3 Funct.Sets mit nur 4Bit)
Klappt aber so und so nicht ;(
Bin der Meinung, entweder immer nur die oberen 4 Bits, oder immer beide
Halbbytes nacheinander und dabei das untere Halbbyte als
don't care, oder?
Grüße,
Rainer
Hallo nochmal,
ich habe mir Ulrich Radig`s Lib umgeschrieben.
Damit laüft mein DOGM 163 super.
Bei Intresse, bitte melden.
Einzigstes Problem war, das ich eine andere Pinbelegung wie Ulrich
habe.
Ich hebe die Daten und die Steuerleitungen genau anders rum.
Bei Ulrichs Lis ist auch ein sehr schoner Formatierungteil dabei,
um einfach Int Werte auszugeben.
Gruß Toby
Hallo,
bei mir läufts jetzt auch ! :)
Hab die Initialisierungswerte vom Datenblatt falsch
interpretiert. (meiner Meinung nach auch leltsam dargestellt)
Konnte jetzt sämtliche NOPs und Waits wieder löschen.
Läuft jetzt einfach prima.
Habs am MSP-Port4 hängen im 4Bit-Mode und 3,3V
Kann mich nur anschließen:
Bei Interesse einfach melden.
Schönen Tag noch!
Rainer
Moin!
Tschuldigung, das ich störe, aber kennt jemand eine deutsch- oder
englischsprachige Homepage, die aussagt, welche Pins auf high und
welche auf low gesetzt sein müssen um ein Display anzusprechen (für
Initialisierung und Darstellung von Text)? Ich wäre sehr dankbar, da
ich leider keine Finde :-( Für ein Projekt in der Schule!
Danke
<shoo:bo>
Das Display läuft bei mir, aber ich habe es nicht geschafft nachträglich
den Kontrast zu verändern. Weiss jemand wass man da senden muss?
Habe für folgende beiden write-Befehle verschiedene Werte ausprobiert.
Aber der Kontrasst ist immer gleich.
_lcd_write_data(0x78); //Senden des Contrast SET
_long_delay();
_lcd_write_data(0x55); //Senden des Power/ICON/Conrast control
_long_delay();
Ich weiss zusätzlich auch nicht wass es mit diesem "Follower Control"
auf sich hat. Vielleicht hat das auch einen Einfluss?
_lcd_write_data(0x6E); //Senden des Follower control
_long_delay();
Gruss Ralph
Hallo.
Ich versuche derzeit auch ein LCD-Displ. mit einem ST7036-Controller
zum Laufen zu bringen. Bisher leider erfolglos :(
Ich werde es nun mit dem von Tobias Tetzlaff veröffentlichten Programm
versuchen. Dabei stellt sich mir jedoch eine Frage.
In der Datei lcd.h steht in Zeile 26 als Anmerkung, dass LCD_D0 bis
LCD_D3 auf gnd geschlossen gehören. Im Datenblatt steht jeoch, dass
diese auf VDD geschlossen werden müssen.
Funktioniert hier beides, oder handelt es sich hierbei um einen kleinen
Tippfehler?
LG Harry
Hallo,
das ist wirklich ein Tippfehler.
D0-D3 müssen auf VDD.
Ich habe übrigens auch mal die LCD Lib für CodeVision umgeschrieben.
Damit kann man den Kontrast und die Zeilenhöhe (Double High) ändern.
Gruß Toby
Hallo,
bin auch gerade am mühen das DOG-M 162 zum Laufen zu bringen.
Leider bleibt das Display bisher dunkel.
Auch der Versuch mit Toby's DOG.c brachte keinen Erfolg.
Hat jmd. von Euch ein *.hex file für den Mega8 zum Testen? will nur
wissen ob das Display defekt ist.
Gruß Dani
hallo
es ist lange her, aber die Probleme bestehen immernoch
wollte fragen
Ich habe
ST7036
EA-DOG
mit CortexM3
kann man code von Rainer dort verwenden
was sollte ich da ändern (HelloWorld) Ausgabe
dankeschön