PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : "Mode"



Killer
08.12.2007, 16:06
Hallo,
brauch mal schnell eure Hilfe!
Übernommen von hier: https://www.roboternetz.de/phpBB2/viewtopic.php?t=32952&postdays=0&postorder=asc&start=0
hab ich das Display in eine Schaltung aufgebaut. Beim Code erstellen bemerkt ich bei der Configurierung den Befehl "Mode":

Config Graphlcd = 240 * 128 , Dataport = Portb , Controlport = Portc , Ce = 2 , Cd = 3 , Wr = 0 , Rd = 1 , Reset = 4 , Fs = 5 , Mode = 6
Im Datenblatt lautet keiner der 34 Pins Mode. Kann wir jemand sagen an welchen Pin die Mode-leitung kommt???

MfG Killer

PS: Datenblatt: http://ledsee.com/index.php?page=shop.product_details&flypage=shop.flypage&product_id=125&category_id=23&manufacturer_id=0&option=com_virtuemart&Itemid=27 (unter Datasheed ;-) )

DarkBeast
08.12.2007, 17:02
hmmm in der bascom hilfe steht doch wozu der da ist der "mode" :P

MODE:
The number of columns for use as text display. Use 8 for X-pixels / 8 = 30 columns for a 240 pixel screen. When you specify 6, 240 / 6 = 40 columns can be used.

Killer
08.12.2007, 18:30
Woran kann der fehler liegen, wenn mein display von oben bis unten nur wirre Zeichen ausgibt?
Mein Testprogramm:


$regfile = "m32def.dat"
$framesize = 32
$swstack = 32
$hwstack = 32
$crystal = 16000000
$baud = 19200


Config Porta.4 = Output
Led Alias Porta.4

Config Graphlcd = 240 * 128 , Dataport = Portd , Controlport = Portc , Ce = 4 , Cd = 5 , Wr = 2 , Rd = 3 , Reset = 1 , Fs = 6 , Mode = 6


Do
Led = 1
Waitms 250
Cls
Locate 1 , 1
Lcd "Hallo Welt"
Led = 0
Waitms 250
Loop
End


MfG Killer

stefan_Z
08.12.2007, 19:16
Könnte einiges sein... Meine Tipps (nach Wahrscheinlichkeit sortiert):
1 - Mode stimmt nicht
2 - Pins vertauscht
3 - Timing stimmt nicht

Killer
08.12.2007, 19:53
1. wie muss denn Mode definiert sein?
2. nicht zutreffend, alle richtig verbunden
3. was meinst du damit? Funktioniert das ganze System nicht per Handshake sodass man da nicht viel auf timing achten muss?

MfG Killer

stefan_Z
09.12.2007, 00:44
3. Ja schon, aber vielleicht ist der µC zu schnell?
Aber versuch mal die anderen Möglichkeiten beim Mode.. kost ja nix.
Daten scheinen ja anzukommen.
Vielleicht stimmt ja auch die Bit-Reihenfolge nicht (MSB/LSB)

Killer
09.12.2007, 00:59
Also bei Mode funktionieren nur die Definitionen 6 und 8.
db0=portd.0
...
db7=portd.7
So sind die Datenleitungen definiert, was in meinen Augen eigendlich als richtig erscheint oder sitzt MSB auf db7???

MfG Killer

stefan_Z
09.12.2007, 01:24
nene, MSB/LSB ist die Reihenfolge der Bits, die du sendest.
"Most-/Least significant Bit"...
Aber da das ja eine Standart-Routine ist, sollte das so schon OK sein.
Da ich kein Grafikdisplay habe, kann ich auch nix testen...
Ist es denn genau das Display, das der Kollege in dem anderen Thread auch hatte? Denn auch wenn die controller gleich sind, können da schon Unterschiede bestehen...
Auch würde ich mal versuchen, das Display wirklich als Grafikdisplay anzusteuern und nicht mit Text.
Zeichne doch mit CIRCLE mal ein paar Pixel, was passiert dann?

chr-mt
09.12.2007, 10:37
Hi,
ändere mal testweise $crystal=16000000
in $crystal=32000000

Dann sind die Zeiten in Bascom doppelt so lang.
Vielleicht geht es ja dann.
Hatte ich schon öfter, daß Grafikdisplays nur mit langsamerem Timing laufen
Meistens konnte ich das dann durch zusätzliche Pullups direkt am Display mit dem richtigen Timing zum laufen bringen.

Gruß
Christopher

stefan_Z
10.12.2007, 13:32
Oder nimm CLOCKDIVISION = X, wenn der Chip es unterstützt

Killer
11.12.2007, 06:10
@ stefan_z: was LSB und MSB ist, ist mir bekannt hatte mich nur gefragt welche Datenleitung wohl dem einen und welche dem anderen entsprechen würde.
Kurzum, es funktioniert jetzt einwandfrei mit Text und auch Grafiken/Bildern; aber halt leider nur im moment auf1 MHz :-(

Vielen Dank für die Hilfe!

MfG Killer

stefan_Z
11.12.2007, 13:52
OK, dann lag ich ja mit "Timing" richtig ;-)
Dann musst du halt nen Weg finden, die Ausgaben zu verlangsamen, weil das Display mit den 16MHz nicht klarkommt.
Dafür gäbe es verschiedene Möglichkeiten:
- Clockdivision nutzen (ich weiß nicht, ob man das nach dem Senden wieder ausmachen kann)
- Die Display-lib umändern (keine Ahnung ob man das Timing anpassen kann)
- Eine eigene Display-Routine schreiben (ist garnicht mal so schwer), dann kann das Timing selber setzen

Killer
11.12.2007, 19:35
Bascom Bibliotheken sind aber doch im allgemeinem nicht in Bascom verfasst, richtig? Was hat man überhaupt mit Bibliotheken für Vorteile im nachhinein?

MfG Killer

Killer
11.12.2007, 19:47
Hab gerade aus Spaß die Fuses verändert von 1 Mhz -> 8Mhz und auf 16Mhz. Die Übertragung zum Display läuft jetzt allerdings komischerweise ohne Probleme sowohl bei aufwendigen Grafiken als auch beim volltexten des Displays. Schon seltsam, wobei ich exakt den selben Code und exakt die gleiche Hardware wie voher als es nicht ging verwendet habe :-)
Der Displaygott muss mich gehört haben...

MfG Killer

stefan_Z
11.12.2007, 23:59
Also wenn man nen schnellen Quarz benutzt, sollte man das dem µC auch mitteilen ;-)

Killer
12.12.2007, 18:11
Das hast du falsch verstanden! 16MHz ging zuerst nicht nachdem ich es in den Fuses eingestellt und in das Programm geschrieben hatte. Als ich das ganze (Fuses und Code) auf 1MHz geändert hatte ging es einwandfrei und nach einem "Rückverwandeln" auf 16MHz lief es allerdings auch!! Das ist es was mir spanisch vorkommt! Fakt ist, dass das Display sich mit vollen 16MHz "geladenen" Prozessor ansteuern lässt.

MfG Killer

stefan_Z
12.12.2007, 18:16
Hmm das ist in der Tat komisch.
Sowas in der Art hatte ich aber glaubich auch mal.. Da hat RS232 ums Verrecken nicht getan und nachdem ich einmal auf externen Takt und danach wieder auf internen geschaltet hatte gings super...

Killer
12.12.2007, 20:22
Der Grund für solche Fehler würde mich mal brennend interessieren!

MfG Killer