Forum: Projekte & Code LCD Library T6963c


von Nico Sachs (Gast)


Angehängte Dateien:

Lesenswert?

Hallo

Ich hab ne T6963 Library gefunden, die jedoch für das codevisionAVR
programmiert war. Ich hab sie convertiert, sodass sie mit dem GCC
Kompilliert werden kann. Ich hab jedoch mein Print noch nicht erhalten
um das ganze zu testen. Wenn jemand lust hat das ding auszupobrieren,
soll er es machen.

PS zu dem source: Es ist zwar nicht c Standart, aber ich hab halt alles
ins header geschmissen.

von Nico Sachs (Gast)


Angehängte Dateien:

Lesenswert?

Ups, hab ne falsche version upgeloadet.

von Nico Sachs (Gast)


Angehängte Dateien:

Lesenswert?

angepasst werden muss nur die variablen definition.

um bilder anzuzeigen müsst ihr nur genau diesen code irgendwo
einbetten.

dazu noch die <pgmspace.h> includen

den anderen mist den das programm erzeugt könnt ihr löschen

von Florian (Gast)


Angehängte Dateien:

Lesenswert?

Klasse Library. Klappte ganz Problemlos.

Ich habe auch gleich eine Mini-Demo geschrieben: Die bekannten Flying
Lines oder unter Windows "Marquee" - komisch, daß die auf meinem 8Mhz
ATmega weniger ruckeln, als auf einem PIV-Power-bis-zum-abwinken ;-)

Anbei noch ein paar Tips:
- es wäre schön, wenn Du die Kommentare nicht mit "//**" machen
würdest, da das meinen Compiler aus den Tritt bringt und er mich mit
warnings überhäuft: warning: "/*" within comment
- Die Funktionen könnten noch ein paar Kommentare vertragen - ebenso
wie einzelne Anweisungen. Dann fällt das Verständnis leichter.
- Hinweis darauf, daß man den Pin FS für Font Select des Displays
unbedingt gegen GND schalten muß, da er von der Library nicht
angesteuert wird, obwohl der in der Pindefinition aufgelistet ist. Mit
dem narrow Font klappt's nicht und ein in der Luft baumelnder Pin
führt auf dem LCD zu tollen Effekten.

von Florian (Gast)


Angehängte Dateien:

Lesenswert?

Ich habe mir mal erlaubt, die Library von Nico zu überarbeiten.

Jetzt kann man die FS-Leitung ansteuern, um den schmalen oder den
normal breiten Font zu benutzen. In Abhängigkeit des eingestellten
Wertes werden die Speicheradressen usw. berechnet.

von Nico Sachs (Gast)


Lesenswert?

Hallo florian

Was hast denn du für einen Compiler, dass der ausruft bei den komischen
komentaren? Ja ich weiss, es herrscht ein bisschen ein Chaos in dem
Code. Man sollte mal ein .h und ein .c file erstellen. Um da ein
bisschen Ordung rein zu bringen.

Das Fontselect schalte ich extern mit font_big(); und font_small(); Ist
es notwendig die speicheradressen neu zu berechnen, wenn die schrift
geändert wird? Ich hab es noch nicht genau angeschaut. (Es ist noch
Montag morgen ;-))

Ich hab mal dein Code auf meinen Proz geschmissen, sieht toll aus!.

mfg

von Nico Sachs (Gast)


Angehängte Dateien:

Lesenswert?

Ich wollte noch ein Bild von meiner geilen Entwicklungsumgebung
hochladen. Das ganze ist Schulprojekt und sollte mal ein Spiel mit 2
displays geben, auf dennen man zu zweit das berühmte Snake Spiel
spielen kann.
Das ganze wird dann aufgestellt an Messen und an Schulen, als
Demonstration für den Elektroniker Beruf

von Florian (Gast)


Angehängte Dateien:

Lesenswert?

Nicht schlecht. Gegen diesen Profi-Aufbau sieht es bei mir sehr
frickelig aus. Aber nach dem ich das Display bei ebay aus Hong Kong
günstig bekommen hatte und es nach gerade mal einer Woche bei mir war,
mußte es schnell gehen mit dem Anschluß und da mußte dann halt ein
fliegender Aufbau her. Besonders elegant ist sicherlich der gegen
Kurzschlüsse eingetütete Trimmer für den Kontrast ;-)

Ich nutze WinAVR und der meckert halt bei //** wenn das in einem /* ...
*/ steht. Ist eigentlich auch korrekt, denn /* ... */ ist mehrzeiliger
Kommentar und darin ist dann wieder der Anfang von einem mehrzeiligen.

Ist ja nicht so schlimm, habe die Kommentare einfach ein wenig
geändert. Ich wollte nur nicht zu viel in Deiner Datei rumpfuschen.
Klar ist das noch in der Entwicklung. Wenn's denn mal weiter gediehen
ist, kann man ja noch die Sache schick machen.

Der Speicher muß neu berechnet werden. zumindest bei meinem Display.
Ist auch irgendwie logisch, denn es sind ja mehr Bytes pro Zeile.
Deshalb habe ich die Defines am Anfang eingebaut und im Code
entsprechend berücksichtigt.

Derzeit erprobe ich die Möglichkeiten, eigene Fonts zu gestalten. Nach
anfänglichen Schwierigkeiten klappts nun auch. Sobald das steht, äußere
ich mich dazu.

Inzwischen habe ich auch bemerkt, daß der Windows Bildschirmschoner
Mystify und nicht Marquee heißt - aber das ist wohl auch egel.

von Florian (Gast)


Angehängte Dateien:

Lesenswert?

Weil's so schön ist: Hier noch eine neuere Version.

Beim lesen von Daten glcd_dget() war ein kleiner Fehler: Es wurde nicht
gewartet. Jetzt läuft auch dies.

Jetzt gibt es auch eine Funktion, um eigene Zeichen zu definieren.

Außerdem eine Funktion, um die Größe der Standardzeichen zu verdoppeln
und daraus neue Zeichen zu generieren.

Weiterhin eine langsame Funktion zum Zeichnen von Teilkreisen. Die
liefert noch keine schönen Kreise.

von Freudi (Gast)


Lesenswert?

Hey Florian
Habe jetzt mein Display aus Honkong. Freu ! Funktioniert auch. Wie
machst Du das mit den Fonts ? Über den Fontedit erhalte ich ne
C-Definition, die kann ich einbinden und dann ? Muss ich noch eine
Funktion schreiben die das in den Graphicspeicher an die richtige
Stelle schreibt oder habe ich die Funktion bei Deinem Quelltext
uebersehen ?

Freudi

von kahtan (Gast)


Lesenswert?

Hello All
Can any one share us T6963C C library for dsPIC (MikroC dsPIC) because
the one supported with the Compiler isn't flexible with dsPIC30F4011
Thank you

von Nico Sachs (Gast)


Lesenswert?

sorry i don't have this c library which you looking for. But i think
you  can easily adjust the definings to control the I/O's. the code to
control the LCD Driver is standart c#

von Nico Sachs (Gast)


Lesenswert?

Ach ja. Unser Projekt ist so langsam fertig.
Ihr könnt ein kleines filmchen und ein paar bilder downloaden unter:

Download hinweise:
Werbung wegklicken und dann auf den Donwload Button klicken.

http://www1.file-upload.net/download_10.06.06/n2ihqg.rar.html

von eman (Gast)


Lesenswert?

cooles ding, nur leider fragt sich, ob sich der aufwand sich für ein
spiel auch lohnt.. vom spielspaß und dauer her gesehen.. aber wenn man
snake-besessen ist :-)

von Nico Sachs (Gast)


Lesenswert?

Ich denke snake ist ein spiel welches nicht so schwierig ist zum
programmieren, darum haben wir es auch gewählt. hättest du dann eine
bessere idee gehabt für ein spiel, welches nicht weniger aufwändiger
gewesen wäre?

von Felix Fellhauer (Gast)


Lesenswert?

Hallo Jungs!

Ich habe jetzt mein LCD (www.microelect.com/lcd/graphic/cgm32064.PDF)
an einen M16 angefalnscht, und versuche dieses seit nunmehr einigen
Tagen vergeblich zum Laufen zu bewegen ;) bin aber bisher erfolglos
geblieben. Die Verbindungen stimmen alle. Die Initialisierung scheint
soweit auch zu funktionieren. Was auch einwandfreigeht, ist der befehl
sget (Statusabfrage) hier konnte ich mit dem Scope nachweisen, dass die
gewünschten Signale aus dem LCD kommen ob sie im µC auch richtig
ankommen ist eine andere Frage. Was mir sehr komisch scheint ist , dass
 ich wenn ich während dem Befehl cleartext oder cleargraph (also die
speicher-Überschreib befehle) messe, am Datenbus (D0...D7 geht auf
PORTC) e-Funktionen(!) messe. Daher denke ich, dass irgendwas mit dem
Daten-Port nicht stimmt, also Direction oder sowas.

Währe echt klasse, wenn mir jemand von euch weiter helfen koennte.

MFG Felix Fellhauer

von Fredy (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Florian,

auf Deinem Bild sind so nette Schalter zu sehen...
Woher hast Du die, wo bekommt man so etwas

Fredy

von Nico Sachs (Gast)


Lesenswert?

Du meinst wohl mich, nicht Florian. ;-)
Das Sind Printtasten von MEC "Navimec" ich hab sie von
http://www.distrelec.com/ishopWebFront/catalog/product.do/para/language/is/de/and/shop/is/CH/and/id/is/01/and/node/is/aeacacacadbd/and/series/is/1.html
Der dazugehörige print hab ich selber gelayoutet.

@Felix
Beschreib mal dein System. Schaltplan, Layout, Fotos usw.....

von Felix Fellhauer (Gast)


Lesenswert?

@ Nico

Ich habe das Problem mittlerweile selber loesen koennen. Ich habe den
DCL-Datenport auf einen anderen port gelegt; jetzt geht es einwandfrei.
Ich nehme an, dass der controller entweder bereits beschädigt war, also
der B-Port defekt oder dass die alternativen funktionen aus welchen
gründen auch immer aktiviert waren und somit der port nur teilweise zu
nutzen war.

trotzdem danke

Gruß Felix

von Nico Sachs (Gast)


Angehängte Dateien:

Lesenswert?

Da ich immer wieder mal angefragt werde, ob ich ihnen den Codevision
code zu dem Displaytreiber T6963C zusenden könne, stelle ich dieses
Archiv mal hierhin. Die Daten wie sie sind hab ich so gefunden, also
nichts verändert. Kann auch nicht sagen ob er funktionniert in cvAVR.

mfg Nico

von Michael Schueller (Gast)


Lesenswert?

Hi Nico,

Du hast mir den Code damals auch geschickt - mein Projekt liegt zwar
derzeit auf Eis, aber der Code tut´s prima (Danke nochmal).

Gruß,

Michael

von Nico (Gast)


Lesenswert?

Hallo,
ich würde gerne wissen welches Display du einsetzt @Nico.
Oder steht das hier schon irgendwo?

Gruß
Nico

von Benjamin (Gast)


Lesenswert?

Hallo Zusammen,
die Bilder sagen doch schon ein super Tool für die Steuerung des GLCD
vorraus, aber hat sich schon mal jemand die Mühe gemacht die Header in
eine .h und .c Datei unzustricken? Wäre sehr nett, wenn sowas existiert
das dann auch im Netz zu finden... Denn wir sind ja alle Arbeitsfaul ;o)
!!

@Nico & Florain
Sehr gute Arbeit!!! Ich werde den Source gerne verwenden.

Andere Frage: Welchen Controller habt Ihr für eure Einheiten verwendet
(@Nico)? Reicht dafür noch der mega128 oder muss ich dann schon einen
größeren Controller haben?

Danke schon mal!!

Gruß
Benjamin

von Nico (Gast)


Lesenswert?

Hallo Benjamin nö hab ich noch nicht gemacht. --> "Never change a
running System" ;-). Nein, es wäre eigentlich schon schön, aber
eigentlich bin ich zu faul ;-).
Ich habe einen 128er auf meinem System, da wir sehr viele Bilder drin
haben. Anfänglich hatten wir einen Mega64. Es wird auch gehen mit einem
32er wenn du keine Bilder benötigst. Kommt halt auf das draufan was du
machen willst.

Gruss Nico

von Thomas H. (Gast)


Lesenswert?

Reply to this:

Autor: Nico Sachs (Gast)
Datum: 27.02.2006 14:06


Hello!
I'm using your t6963C library for WinAVR, and it works very fine!
I have a question: How did you converted an image to data for the C 
code? (like in picture_beispiel.txt). I want to show a bitmap on my LCD, 
wich I draw in the Paint program on Windows.

Thanks!
Thomas

von Stefan W. (wswbln)


Lesenswert?

Hallo Felix,

Du hast zwar schon eine Lösung (umlöten) gefunden, aber um zum 
Ursprungsproblem zurückzukommen: Hattest Du in den Fuses den JTAG-Port 
disabled? Die M16er kommen vom Hersteller mit defaultmässig JTAG 
enabled. Dann macht Port C (zumindest an den JTAG-Pins) recht 
merkwürdige Dinge, die nur entfernt unbedingt mit PORTC und DDRC zu tun 
haben :-)

von eman (Gast)


Lesenswert?

naja, für ein spiel lohnt es sich meiner meinung nach halt nicht...wie 
oft spielst du denn?

wie wär's mit 'ner erweiterung um einen netzwerkanschluss, über den der 
bootloader die spiele dann aus dem netz besorgt. und es ermöglicht 
multiplayer ;-)

von Johannes (Gast)


Lesenswert?

Hallo zusammen,

ich bin gerade dabei den Code auf dem R8C13 zum laufen zu bringen. Was 
mir nicht klar ist:
Wozu dient die Funktion DDR(...)=... in glcd_setup()??
Ist das was AVR spezifisches?
Ich habs einfach mal auf gut Glück rausgelassen. Die Initialisierung 
wird auch ausgeführt, ebenso glcd_print(...) aber es erscheint nix auf 
dem Display...
Wenn ihr mir sagen könnt, was die DDR() eigentlich macht, bekomme ichs 
vielleicht doch noch zum laufen...

Besten Dank,

mfg
Johannes

von Werner B. (Gast)


Lesenswert?

DDRx ist das "Data Direction Register" und schaltet zwischen Input und 
Output um.

von Putzer Philipp (Gast)


Lesenswert?

Hallo allerseits!

Ich bin vor einigen Tagen hier auf die C-Library zur Ansteuerung eines 
240x180 Grafikdisplays mit dem T6963c-Controller von Toshiba gestoßen.


Habe sie gleich ausprobieren müssen, und läuft super!! Klasse Arbeit!

Nur habe ich ein paar Fragen zur verwendung der einzelnen Funktionen.

1. Zum Display(Powertip PG 240128-A) selbst. Es hat einen Pin der MD2 
heißt, und irgen etwas mit den Spalten zu tun hat. Nur weiß ich nicht 
genau was, ich glaube es schaltet von 32 auf 40 Spalten um. Wird dieses 
Feature in der lib auch verwendet, oder werden immer fix die 40 Spalten 
verwendet?

2. In der Lib gibt es die Funktion "glcd_set_myfont". Gehe ich richtig 
davon aus, dass die Funktion dem Display sagt welchen Zeichensatz es zu 
verwenden hat. den muss ich also mit einem fonteditor erzeugen lassen 
und in includieren und als adressparameter (mem) übergeben. Stimmt das 
so in etwa? Ich habe einen Font editor verwendet, der noch einen ganzen 
Haufen andere includes erzeugt, mit denen weiß ich dann nicht was 
anfangen.

3. Im beispiel von Nico oben (3. oder 4. post) wird eine grafik am lcd 
ausgegeben. ich includiere in meinem programm also das "Bild" als 
rohdaten, habe das beispielbild einfach hinenkopiert, nur, wie schreibe 
ich die grafik dann ans lcd? mit glcd_print?? oder mit glcd_show?? funkt 
leider bei beiden nicht.


so, mir wäre echt weitergeholfen, wenn mir jemand etwas dazu sagen 
könnte. im vorab will ich mich entschuldigen, sollten meine fragen zu 
banal sein, oder einfach nur idiotisch...


vielen vielen dank und schöne grüße

philipp

von chris (Gast)


Lesenswert?

Hallo Leute,
meine Frage, kann man diese Library auf für einen PIC 16F877 verwenden.
Danke
Chris

von scholli (Gast)


Lesenswert?

Ntürlich kannst Du sie verwenden, aber es wir wohl nicht so 
funktionieren..

von wayne (Gast)


Lesenswert?

Ich versuche gerade das Beispiel hier aus dem Thread zum laufen 
zubringen mit der letzten Winavr Version bekomme aber immer einen Fhler, 
dass die elf Datei nicht gefunden wird.

Hat wer eine Idee woran das liegen kannß

mfg wayne

von Christian R. (mrrotzi)


Lesenswert?

libm.a dazulinken!

von Schorsch (Gast)


Lesenswert?

Hallo,

erstmal ein großes Lob an die Entwickler!

Ich scheitere allerdings an der Benutzung der Custom Fonts.

Das Generieren ist ja kein Problem, aber hat vielleicht jemand ein 
Beispiel, wie ich mit 'glcd_set_myfont', 'glcd_make_big_font' und 
'glcd_print_big' umzugehen habe?

Schonmal vielen Dank im voraus

Schorsch

von Christian R. (mrrotzi)


Lesenswert?

Hallo Schorsch,

um beliebige Fonts zu generieren habe ich folgendes Tool geschrieben:
Beitrag "GLCD T6963C Font-Tool"

Vielleicht ist das interessant für dich.

Tool starten, Button: Font... Font auswählen,
angeben, welche Buchstaben als generiert werden sollen,
Ränder, Fixe Größe und Namen vergeben und dann Button Generate drücken.

Dialog mit Ok zumachen und in der Auswahlbox im Hauptfenster den Font 
auswählen.
x, y Koordinaten angeben, Text eintippen und "Print" drücken.

Den Font kann man auch über "Export" als .c file auf die Platte 
schreiben!

Viele Grüße,
Christian

von Schorsch (Gast)


Lesenswert?

Kann es sein, dass zusätzlicher Speicher neben dem t6963c vorhanden sein 
muss?

Ich meine, dass der t6963c nicht ohne Erwiterung zum generieren der 
Custom Fonts in der Lage ist!??

von Sascha F. (sascha_focus) Benutzerseite


Lesenswert?

Hallo,

in welchem Source sind die Erweiterungen, um Eigene Fonts zu nutzen?
Falls jemand so nett wäre, und ihn hier anhängen würde.

Gruß Sascha

von Sascha F. (sascha_focus) Benutzerseite


Lesenswert?

Benutzt es keiner ?

Gruß Sascha

von Christian R. (mrrotzi)


Lesenswert?

Was meinst du eigentlich mit "Erweiterungen" ??

Ich benutze die Library und ich weiß nicht genau um welche 
"Erweiterungen" es geht!

von Sascha F. (sascha_focus) Benutzerseite


Lesenswert?

Um zum Beispiel dein Fontgenerator zu nutzen :)
Dort ist zwar ein Code vorhanden, aber die im Generator
benutze glcd_print2_P Routine nicht.

Ein Beispiel für die Nutzung wäre nicht schlecht.

Gruß Sascha

von Christian R. (mrrotzi)


Lesenswert?

aaaalso:

Mein Font-Konverter erzeugt für Lib, die auch im Zip enthalten ist, die 
richtigen Funktionsaufrufe im Trace-Fenster!

zB
- Font-Generator starten...
- Font... Button drücken und Font, sowie die Zeichen wählen, die du als 
.c file exportiert haben möchtest.
- Generate Button drücken
- Ok Button drücken

Dann im Hauptfenster rechts in der Auswahlbox (links neben dem Font... 
Button) den neuen Font auswählen.

Mit der Maus in den blauen (Display-) Bereich klicken (dort, wo das 
Element hinkommen soll)

dann mit der Maus einen Doppelklick in eine der x,y Koordinaten Textbox 
(rechts neben "invers")

Text in die längere Textbox rechts daneben eintippen ... und auf "Print" 
drücken!


Darauf erscheint der Text, gezeichnet mit dem ausgewählten Font und in 
der Listbox darunter steht dann zB
glcd_print2_P(18, 73, "Test Text", &Snap_ITC__18, 0);

diesen Text kannst du 1:1 in deinen Sourcecode kopieren.

Um den Font als .c file zu exportieren: Export Button drücken und einen 
Dateinamen und Pfad wählen. Den musst du dann nur noch in dein AVR 
Projekt aufnehmen!


Hmmm ... eine Tool-Beschreibung wäre nicht schlecht! Ich weiß! 
Allerdings, da das Teil eh niemand verwendet - hab ich mir auch die 
Arbeit (noch) nicht angetan ;o))


Viel Glück!

von Sascha F. (sascha_focus) Benutzerseite


Lesenswert?

> Darauf erscheint der Text, gezeichnet mit dem ausgewählten Font und in
> der Listbox darunter steht dann zB
> glcd_print2_P(18, 73, "Test Text", &Snap_ITC__18, 0);
>
> diesen Text kannst du 1:1 in deinen Sourcecode kopieren.


Das habe ich auch schon festgestellt :)

Aber wo finde ich die Funktion glcd_print2_P ?????

Die ist in den Sources nicht vorhanden..

Gruß Sascha

von Christian R. (mrrotzi)


Lesenswert?

AAAHHHHHHH! =:-O

ja, du hast recht!

die Dateien: font.h und font.c sind nicht im ZIP File!


Hab's neu verpackt und raufgeladen ;o)


Danke,
Christian

von Sascha F. (sascha_focus) Benutzerseite


Lesenswert?

Hehe, habe mich wohl ein wenig blöd ausgedrückt :)

Werde es gleich mal ansehen. Danke........

Gruß Sascha

von Stroop (Gast)


Lesenswert?

Ich würde gerne die marquee-Graphik-Anwendung (oder auch andere 
AVR-basierte   T6963-Kontroller basierte Graphik-LCD-Anwendungen) 
'nachstricken', um an diesem Beispiel die Funktionsweise der 
LCD-Ansteuerung nachzuvollziehen bzw. zu verstehen.
Für welchen AVR wurde die marquee-Anwendung ausgelegt, oder besser 
gefragt, mit welcher Frequenz muß der Mikrokontroller getaktet sein, 
damit die Anwendung läuft? Kann ich das (an welcher Stelle) dem Code 
entnehmen?

Danke.

von Roberto (Gast)


Lesenswert?

Hallo

Toll die T6963 Library.....:-) :-)
Hätte dazu aber noch ein blöde Frage ;-)
Wie kann ich auf dem Display eine Variable ausgeben?
Vielleicht kann mir jemand auf die Sprünge helfen :-)

Danke.
l.G. Roberto

von Alexander Lamprecht (Gast)


Lesenswert?

Code anschauen...
void glcd_print(int x,int y,const char *string);     // send string of 
characters to LCD

Du kannst also einfach deine function mit einer Variablen/einem Array 
vom Typ char statt einem String aufrufen.

von Clyde H. (clyde)


Lesenswert?

Hallo,

kannst Du mir sagen, wo Du die Libary für CodeVision gefunden hast?
Ich habe mich schon "wund" gesucht aber nix gefunden. Nur für AVR Studio 
begegnen mir Libary´s für den T6963.
Wäre echt nett, wenn Du mir da was sagen könntest.

Gruß
Clyde

von Alexander Lamprecht (Gast)


Lesenswert?

Die lib ist doch verlinkt?
http://www.mikrocontroller.net/attachment/16196/T6963C_LCD_Controller.zip 
- siehe weiter oben.

von Clyde H. (clyde)


Lesenswert?

Danke, und ich werde es nachher mal ausprobieren.
So wie ich das verstanden habe, hat er sie angepasst auf AVR Studio...
Und somit wäre si ja nicht mehr kompatibel zu CodeVision.


Gruß
Clyde

von Clyde H. (clyde)


Lesenswert?

Mann Mann Mann 8)
Bin ich blind gewesen...
Habe es jetzt nach nochmaligem Lesen des Threads auch gesehen...
peinlich peinlich...

Vielen Dank

Gruß
Clyde

von Alexander Lamprecht (Gast)


Lesenswert?

Die von mir verlinkte ist die CodeVision-Version ;)
Die für AVR Studio angepasste Version hier: 
http://www.mikrocontroller.net/attachment/16194/t6963c.h

von hans (Gast)


Lesenswert?

Hat jemand von euch Erfahrung mit dem 'scheinbar' kompatiblen Typ 
SAP1024 der als 1:1 Ersatz des t6963 gelten soll.

Bsp. bei Powertip ist der 6963-Displaytyp fast nicht mehr zu beziehen.


grüssle hans

von Alexander Lamprecht (Gast)


Lesenswert?

Hm mir fällt gerade auf... ich kann die lib leider nicht benutzen da ich 
noch einen "alten" AT89C5131A benutze und deshalb mit RIDE 6.1 
arbeite... Würde jemand so nett sein und mir die lib dafür umschreiben?
Habe dazu leider selbst noch nicht genug erfahrung :(

von Karl-heinz S. (cletus)


Lesenswert?

Was sind die Mindestanforderungen der Library?

Läuft sie auf einem Atmega 8-16 (ohne zusätzlichen Speicher)?

von Timo Birnschein (Gast)


Lesenswert?

Hallo,

ich versuche die Lib zu verwenden, allerdings wird bei mir nichts außer 
Datenschrott dargestellt.

Ich habe mit einem Oszi die Leitungen durchgeklingelt und alle zeigen 
plausible Werte an.
Mein Mega2560 hat an PortB die Datenleitungen und an PortH die 
Controll-Leitungen.

Der AVR wird mit 18,432MHz getaktet und ich vermute, dass hier das 
Problem liegen könnte. Das Display könnte mit der Geschwindigkeit nicht 
klar kommen.

Welche Taktraten habt ihr verwendet? Evtl nur 8MHz?

Es sind ein paar Pausen in der Lib eingebaut, die nur mit ASM ein paar 
NOP Befehle ausführen. Das ist natürlich absolut nicht 
Geschwindigkeitsunabhängig. Darum wäre es toll, wenn man jemand sagen 
würde, für welchen Takt das ganze bisher ausgelegt ist.

Das 0x03 Statusbyte scheint jedenfalls normal ausgelesen zu werden, da 
die Initialisierung einwandfrei durchläuft.

Irgendwelche guten Tipps? :)

MFG
Timo

von Harry S. (littlegonzo)


Lesenswert?

Hi,
also ich habe sie heute mal getestet da ich sonst immer die von Holger 
Klabunde verwende aber sie läuft sauber. Ich verwende den ATMega 32 mit 
16MHz. Hatte zu Anfang aber auch das Problem mit dem "Datenmüll" aber es 
lag an falschen Portzuweisungen und falsch belegter Reset(wird bei mir 
nicht an Board geführt). Scheinbar muß man auch wirklich die neuste 
Version benutzen vom Autor:  Florian (Gast) am Datum: 08.03.2006 16:43

Schöne Grüße
Harry

von oobi (Gast)


Lesenswert?

Hi,

habe ein toshiba TLX 1013 E0 und bin noch nicht so der profi und wollte 
fragen ob ihr eure projekt mal uploaden könntet das ich mal ein wenig an 
das display ausprobieren kann.

Gruß oobi

von oobi (Gast)


Lesenswert?

push

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Seh ich das eigentlich richtig das das Display sowohl Grafik darstellen 
aknn als auch Text "drüberschreiben"?

von holger (Gast)


Lesenswert?

>Seh ich das eigentlich richtig das das Display sowohl Grafik darstellen
>aknn als auch Text "drüberschreiben"?

Beim T6963? Ja das geht. Du kannst eine Grafik unter dem
Text scrollen ohne das der sich auch nur rührt.

von oobi (Gast)


Lesenswert?

der text ist auch eine art grafik das display hat einer relativ große 
auflösung und kann text und grafik anzeigen hat halt viel mehr pixel als 
so ein 2x16.

Bekomm ich die software zum ansteurn des display?????

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

holger wrote:
>>Seh ich das eigentlich richtig das das Display sowohl Grafik darstellen
>>aknn als auch Text "drüberschreiben"?
>
> Beim T6963? Ja das geht. Du kannst eine Grafik unter dem
> Text scrollen ohne das der sich auch nur rührt.

Sehr schön danke :)
Noch irgenwelche "Fallstricke" zu beachten bevor ich mich die Tage mal 
um den Anschluß des Displays kümmere?

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Wollte nur vermelden das ich das Display mit der Libaryund Marquee Demo 
erfolgreich in Betrieb genommen habe. Mußte nur bei den Includes ein 
bischen was anpassen an die GCC Version.

von Peter D. (peda)


Lesenswert?

Alexander Lamprecht wrote:
> Die für AVR Studio angepasste Version hier:
> http://www.mikrocontroller.net/attachment/16194/t6963c.h

Wolte nur mal anmerken, daß es bei mir auch funktioniert:

MC: ATtiny461 (16MHz interner RC-Oszillator)
Display: MG24065G (240*64)


Peter

von oobi (Gast)


Lesenswert?

könnt ihr mir vllt eure fertige software geben weil mit der header datei 
bekomm ich nichts hin??

GRuß

oobi

von Läubi .. (laeubi) Benutzerseite


Angehängte Dateien:

Lesenswert?

Mein komplettes AVR Studioprojekt für den Mega32 pinbelegung steht im 
headerfile, fertige HEX für 1Mhz liegt bei.

von Matthias R. (mons)


Lesenswert?

HI
habt ihr schon einen Programmtext für die C-Control Pro 128?

von gast (Gast)


Lesenswert?

>habt ihr schon einen Programmtext für die C-Control Pro 128?

selbst schreiben .. oder weitersuchen
den C-contol basickram tut sich kaum einer an ^^

von Josef K. (zumlin)


Lesenswert?

Hallo,

super Library. Ich wollte das ganze mit dem Display von Reichelt "LCD 
240X128 BL :: LCD Grafik-Modul, 240 x 128 Punkte" (Artikel-Nr.: LCD 
240X128 BL) verheiraten.
In der Beschreibung habe ich gelesen, dass es sich um ein Display mit EA 
W240-7KHLW handelt und in dem Datasheet steht dazu:
"[...] niedrigen Stromverbaruch von typ. 180mA @ 3,6 V (max. 270 mA). 
Der Strom muss über einen externen Vorwiderstand angepasst 
werden.[...]".
Was beudeutet das? Die Kontrasteinstellung ist damit ja wohl nicht 
gemeint, oder? Diese variiere ich ja mit einem einstellbaren 
Spannungsteiler an Pin 3 und 17. Ansonsten kann ich bei den Pins nichts 
finden, an dem ich irgenwo einen Vorwiderstand einbauen sollte. Pin 2 
(+5V) bleibt noch, aber daran muss ich doch nichts machen außer an 5V 
anschließen, oder? :)

Außerdem bin ich mir nicht sicher was "#define glcd_rv_PIN" definiert. 
RV finde ich bei den Pins nicht. Bei mir bleibt nur noch MD2 (Pin 18) 
über, welcher die Funktion "Textmode L: 40 columns, H: 32 columns" hat.

Schon mal danke fürs lesen.

von Fabian B. (fabs)


Lesenswert?

Die Stromangabe bezieht sich nur auf das Backlight. Das sind LEDs und 
die brauchen halt einen Vorwiderstand oder eine Stromquelle.
5V+ sind 5V ohne Widerstand, maximal zieht der 50mA.

Gruß
Fabian

von Josef K. (zumlin)


Lesenswert?

Achso,

die LEDs sind bei diesem Datasheet nicht extra gelistet. Sind das dann 
die Anschlüsse Anode bzw. Kathode am rechten Rand des Displays?

von Fabian B. (fabs)


Lesenswert?

Jenau.

Gruß
Fabian

von Josef K. (zumlin)


Lesenswert?

Hallo nochmal,

ich bin gerade am überlegen, wie man denn die 3,6V für die 
Hintergrundbeleuchtung einrichtet.
Ich habe bei meinem Aufbau 8V zur Verfügung. Ich dachte daher an einen 
Spannungsteiler mit ~24,4 Ohm und 20 Ohm. Dabei sollte sich ein Strom 
von 180mA einstellen. Aber was ist dann am Knotenpunkt, an dem das 
Display auch seine 3,6V für die Hintergrundbeleuchtung abgreift?
Funktioniert das denn so, oder sollte ich das evtl mittels 
Festspannungsregler machen?

von Fabian B. (fabs)


Lesenswert?

Kein Spannugsteiler, eineinfacher Vorwiderstand reicht doch.

Der Widerstand errechnet sich mittels:

Rechnen darfst du selbst...und auch mal nach LED und Vorwiderstand 
suchen ;-)

Gruß
Fabian

von Josef K. (zumlin)


Lesenswert?

Achso

über die LED fallen definiert die 3,6V ab?! Na dann is gut. Dachte ich 
muss die mit 3,6V "versorgen". Aber mit Strom "versorgen" macht wohl 
mehr Sinn. :)

Danke

PS: Nur um sicher zu gehen: Es sollten dann die ~24,4 Ohm (wie oben) als 
reiner Vorwiderstand sein, oder?

von Dennis (Gast)


Lesenswert?

Hi,

ich habe auch versucht die t6963c lib zum laufen zu bekommen aber bei 
mir tut sich da überhaupt nichts.

Ich benutze ein SDK500 mit einem ATMega644 dazu ein display mit einem 
t6963c controller (Bolymin 240128a).

Bei sämtlichen Beispielprogrammen die ich jetzt ausprobiert hab tut sich 
genau gar nichts und ich krieg einfach nicht raus woran es liegt :(

von Fabian B. (fabs)


Lesenswert?

@zumlin: wenn die LEDs mit 3,6V angegeben sind im DB dann werden wohl 
etwa 3,6V bei Nennstrom an ihnen abfallen. LEDs haben eine 
Flussspannung, die sich bei einer bestimmten Stromstärke einstellt. 
Weniger Strom -> weniger Spannung fällt an der LED ab und vice versa.

Bzgl. des Widerstandes: denk daran, dass da bei einem rnd. 25Ohm 
Widerstand und 180mA ca. 0,8W Leistung verbraten werden. Also nimm 
lieber einen ausreichend dicken R, oder auch zwei kleinere in Reihe. Du 
kannst aber auch durchaus mal mit 62Ohm oder sogar 100 Ohm 
experimentieren... die LED Helligkeitskennlinie ist alles andere als 
linear.

@Dennis: mein Auto ist kaputt und ich weiss nicht warum, helft mir! ;-)
Mehr Details, Anschlussplan, Software, was genau passiert...

Gruß
Fabian

von Dennis (Gast)


Lesenswert?

Anschlussplan:

Display                STK500
PIN1  FRAME GND        PORTC GND
PIN2  GND              PORTA GND
PIN3  Vdd +5V          PORTA 5V
PIN4  Contrast         hängt an nem Poti...
PIN5  /WR              PORTA0
PIN6  /RD              PORTA1
PIN7  /CE              PORTA2
PIN8  C/D              PORTA3
PIN9  Vee - 16V        am Poti...
PIN10 /RESET           PORTA4
PIN11 DATA0            PORTC0
PIN12 DATA1            PORTC1
PIN13 DATA2            PORTC2
PIN14 DATA3            PORTC3
PIN15 DATA4            PORTC4
PIN16 DATA5            PORTC5
PIN17 DATA6            PORTC6
PIN18 DATA7            PORTC7
PIN19 FS               PORTA5
PIN20 RV               PORTA6

Software: ich hab die Daten von Läubi benutzt hier aus dem Beitrag 
(Datum: 02.02.2009 18:56 )
AVR Studio 4, GCC Plugin 1.0.0.11

Hardware: STK500, ATMega644, Display: Bolymin 240128a mit t6963c 
Controller

Ich kann alles wunderbar kompilieren und auch auf den ATMega644 hoch 
schieben. Während das passiert flackert das Display mal kurz und zeigt 
dann einfach nichts an (je nach kontrast eben nur ein schwarzes viereck 
oder nichts)
Bei einem reset auf dem STK500 erscheinen kurz linien auf dem Display 
dann wieder nichts.

Die Pin Belegung wurde natürlich in der t6963c.h angepasst, ansonsten 
wurden keine veränderungen am Code vorgenommen.

mfg Dennis

von Fabian B. (fabs)


Lesenswert?

Bei Port-C klingelt bei mir doch sofort die JTAG-Fuse-Klingel.

Schau mal ob die Fuse für JTAG noch aktiv ist...die blockiert dir dann 
nämlich die Hälfte von Port-C

Gruß
Fabian

von Dennis (Gast)


Angehängte Dateien:

Lesenswert?

JTag war wirklich noch gesetzt und nach dem entfernen kommt jetzt 
zumindest mal Pixelmüll an :)

Ich hab gerade nochmal die Belegung und Verdrahtung überprüft und glaube 
eigentlich alles richtig gemacht zu haben. (wie oben beschrieben)

Im Anhang die aktuelle Ausgabe auf dem Display

von Fabian B. (fabs)


Lesenswert?

Stimmt deine Clock und auch die Fuses dazu? Ist die Init-Sequenz 
richtig? Stimmen die Timings in der Init-Sequenz (hier sind wir wieder 
bei der Clock)?

Klassischer Fehlgedanke: "Ich nehm mal den internen Oszillator mit 
8MHz", aber man vergisst die CLKDIV Fuse zu deaktivieren.

Gruß
Fabian

von serg (Gast)


Angehängte Dateien:

Lesenswert?

Hallo habe das gleiche Problem wie der Dennis. Bin schon am 
verzweifeln....
Bekomme die Bibliothek einfach nicht zum laufen. Die verdrahtung stimmt. 
Habe schon viele andere Bibliotheken ausprobiert aber die laufen auch 
nicht. Benutze einen atmega128 und winavr. Wisst ihr was ich da falsch 
mache?
Im anhang mein Projekt....

von Sergej S. (serg)


Angehängte Dateien:

Lesenswert?

Will nur etwas mit Hilfe der bib Anzeigen lassen. Benutze deswegen schon 
bereits fertige Projekte. Hier noch eins. Habe nur die Pinbelegung 
verändert aber wie oben schon bereits gesagt.....es tut sich nichts..
gruß serg

von Sergej S. (serg)


Lesenswert?

Eine Frage an die, die ein Initialisierung schon mal selber geschrieben 
haben. Könnte mir jemand helfen und erklären was man da genau machen 
muss. Verstehe das nicht mit ce, cd, rw und rst. Habe schon mal ein 
Textdisplay zum laufen bekommen aber das war wesentlich einfacher...
Gruß Serg

von Sergej S. (serg)


Lesenswert?

finde es schade das sich bisher keiner gemeldet hat.
Für denjenigen der mir hift das LCD anzusteuern gibt etwas Kleingeld.
Bei Fragen schreibt mir. Schreibe zur Zeit eine Diplomarbeit und komme 
mit dem LCD nicht weiter. Muss dringend das LCD angesteuert bekommen.
Gruß serg

von Steffen H. (Gast)


Lesenswert?

Was hast du denn da für ein Display dran? 240x128?? Zeigt es nur wilde 
Streifen und Muster? -> dann stimmt ja schon mal die Kontrastspannung.

von Sergej S. (serg)


Angehängte Dateien:

Lesenswert?

Hallo, danke für die Antwort.
Ja das ist ein 240x128 Display. Im Anhang das Datenblatt.
Beim Anzeigen kommt es immer darauf an welche Bibliothek ich benutze. 
Manchmal zeigt er mir nur einen Streifen an, manchmal bewegt sich dieser 
Streifen und ein anderesmal wird nichts angezeigt. Habe gedacht dass es 
vieleicht am JTAG liegt, weiß aber nicht wie ich ihn Ausschalten soll. 
Benutze AVR Studio. Gruß Sergej

von Steffen H. (Gast)


Lesenswert?

Deine Difines scheinen erstmal in Ordnung zu sein. Was machst du mit dem 
MD2-Anschluss des Displays?

von Steffen H. (Gast)


Lesenswert?

MD2 -> High wenn FontSelect = 8x8 (wide)
MD2 -> Low  wenn FontSelect = 6x8 (narrow)

von GURKE (Gast)


Lesenswert?

Moin,
Ich dachte mir, das ich hier wohl richtig sein würde. Immerhin quatscht 
ihr hier nun ein par Jahre ;)

Ich habe mir ein ATMEGA 32-16 DIP bei Reichelt gekauft
http://www.reichelt.de/?ACTION=3;ARTICLE=45026;PROVID=2402
Außerdem noch ein Grafik LCD "LM6270SYL" bei Pollin.de gekauft welcher 
mit einem toshiba t6963c angesteuert wird.

Nun wollte ich mit dem ATMEGA das LCD anzusteuern. Programmieren wollte 
ich es mit dem Programmer:
http://www.reichelt.de/?ACTION=3;ARTICLE=45040;GROUPID=;SID=31hY-ebKwQAR8AADGMjIcf47f37152011c67f87b0c7ea27ff9ebf


Könnt ihr mir da ein Schaltplan liefern, wie ich die alle verbinden 
muss? Und wie kann ich das Display ansteuern? Habt ihr da schon so 
Standard-Codes zum auszuprobieren, auf denen man dann aufbauen kann?

Danke schonmal!

Gruß
GURKE

PS: Als wir diese Sachen gekauft hatten, hatte mein Bruder die Sachen 
ausgesucht weil er davon am meisten Ahnung hat. Nun hat sich allerdings 
rausgestellt, das er im Grunde genommen kein Ahnung hat. Ich hoffe ihr 
könnt mir da helfen!

von Sergej S. (serg)


Lesenswert?

Hallo Gurke,
hoffe das hilft dir weiter
http://www.8051projects.net/out.php?link=http://en.radzio.dxp.pl/t6963/
gruß serg

von Sergej S. (serg)


Angehängte Dateien:

Lesenswert?

Hallo Steffen,
weißt du wie ich ein bereits vorhandenes Programm an einen atmega128 
anpasse?(Einstellungen etc.) Habe eine neuere Headerdatei gefunden, 
diese ist aber für einen Atmega16 und wenn ich nur den Prozessortypen in 
der Option ändere dann bleiben im rechten fenster immer noch die Ports 
vom atmega16, ungeändert und unten im Fenster wird der atmega16 als 
Prozessortyp angezeigt. Machen ich ein neues Projekt und binde die 
Dateien neu ein so bekomme ich viele Fehlermeldungen.
Im Anhand die neue BIB
vielen Dank für die Mühe
meine email ansergej@gmx.de
Gruß Serg

von Josef K. (zumlin)


Lesenswert?

Hallo,

habe ziemlich das gleiche Problem wie Sergej. Habe ebenfalls das Display 
von Reichelt und einen AT90CAN128 als µC.

Hier mal meine defines in der T6963c-Bib:
1
/*
2
 *  GND               (1)  ground 
3
 *  VDD               (2)  LCD logic supply  +5 DC
4
 *  Spanungsteiler    (3)  
5
 *  CD                (4)  <--> 
6
 *  /RD               (5)  <--> 
7
 *  /WR               (6)  <--> 
8
 *  D0                (7)  <--> 
9
 *  D1                (8)  <--> 
10
 *  D2                (9)  <--> 
11
 *  D3                (10) <--> 
12
 *  D4                (11) <--> 
13
 *  D5                (12) <--> 
14
 *  D6                (13) <--> 
15
 *  D7                (14) <--> 
16
 *  /CE               (15) <--> 
17
 *  RS                (16) <-->
18
 *  Spannungsteiler   (17) 
19
 *  MD2               (18) <-->
20
 *  FS                (19) <-->
21
 *  NC                (20) NC
22
 */
23
24
25
/****************************************
26
// **    PIN DEFINITIONS      // **
27
// **
28
*****************************************/
29
30
#define glcd_wr_PIN    0      // **
31
#define glcd_wr_PORT  PORTC   // **
32
33
#define glcd_rd_PIN    1      // **
34
#define glcd_rd_PORT  PORTC   // **
35
36
#define glcd_ce_PIN    2      // **
37
#define glcd_ce_PORT  PORTC   // **
38
39
#define glcd_cd_PIN    3      // **
40
#define glcd_cd_PORT  PORTC   // **
41
42
#define glcd_rst_PIN  4      // **
43
#define glcd_rst_PORT  PORTC // **
44
45
#define glcd_fs_PIN    5     // **
46
#define glcd_fs_PORT  PORTC  // **
47
48
#define glcd_rv_PIN    6     // **  //gibt es bei mir nicht
49
#define glcd_rv_PORT  PORTC  // **
50
51
#define glcd_DATA_PORT   PORTA // **
52
#define glcd_DATA_PIN  PINA    // **
53
#define glcd_DATADIR  DDRA     // **
54
55
#define glcd_md2_PIN  7       // **
56
#define glcd_md2_PORT  PORTC  // **                  
57
//***************************************
58
//***************************************

Leider klappt bei mir schon glcd_init() nicht. Gleich beim ersten Befehl 
glcd_dput(glcd_G_BASE%256) bleibt mein µC in einer Endlosschleife in 
glcd_dput() in Zeile 1 hängen, da die Antwort von glcd_sget immer 0x00 
ist:
1
do {} while ((0x03 & glcd_sget()) != 0x03); // wait until display ready

Ansonsten bleibt das Display leer ohne zu flacker. Das liegt evtl daran, 
dass ich MD2 geschalten habe. In der originalen Bib wird der benötigete 
Pin am µC ja nie als Ausgang geschalten. War ja auch nicht nötig.

Trotzdem läuft bei mir das Display auch nicht :(

von Josef K. (zumlin)


Lesenswert?

Arrg. Habs gefunden. Lag leider an einer Durchkontaktierung für den RD 
Pin. :)

@Sergej: Die Bibliothek sollte also laufen, insofern du MD2 auch auf 
High oder Low ziehst. Falls du noch Hilfe brauchst, dann melde dich.

von Sergej S. (serg)


Angehängte Dateien:

Lesenswert?

Hallo,
vielen Dank für eure Hilfe. Habe den Fehler jetzt gefunden. Da ich einen 
Atmega128 verwende muss der 103-Kompabilitäts Fuse entfernt werden. 
Jetzt geht es.....
Weiß jemand von euch wie ich eine andere Schriftart verwenden kann, oder 
wie ich Sie an mein Programm anpasse?
Das Prog habe ich hinzugefügt.
Gruß Serg

von Josef K. (zumlin)


Lesenswert?

Hallo

ich versuche gerade die Funktion Big_Font Funktionen zu nutzen und 
möchte mir dabei aus der internen Codemap ein paar Zeichen vergrößer. 
Leider funktioniert das nicht ganz. Sobald ich einen neuen Bereich 
vergrößern will, Zeigt das Display für diesen nur Müll an.
Hier mal der relevante Teil:
1
  //TEST
2
  glcd_clear_graph();
3
  glcd_clear_text();
4
  //, - . / 0 bis 9
5
  glcd_make_big_font (0x0C, 0x19, 128);  //bis 141  0 bis 13
6
  //h i j k l m
7
  glcd_clear_graph();
8
  glcd_clear_text();
9
  glcd_make_big_font (0x48, 0x4D, 142);  //bis 147  14 19
10
  
11
  glcd_print_big (1, 3, 0, 128);
12
  glcd_print_big (3, 3, 13, 128);
13
  glcd_print_big (5, 3, 14, 128);
14
  glcd_print_big (7, 3, 19, 128);



@Sergej

Ich glaube in dem Beitrag "GLCD T6963C Font-Tool" wurde das 
ganz gut erklärt.

von Sergej S. (serg)


Lesenswert?

Hallo Josef,
danke für den Link. Habe den Fehler gefunden. Anstelle von 
glcd_print....
muss man lcd_print... schreiben, dann funktioniert es mit den Fonds 
einbinden. Danke dir.
Gruß Serg

von Massa-Master (Gast)


Lesenswert?

Hi
So die Display Rutine läuft bei mir klasse. Ich habe aber noch ein 
Problem. ich habe mir das Grafik Konvertierungstool von Klabunde geladen 
und mir ne C-Datei mit dem Bild erstellt. Wie bekomme ich die jetzt auf 
den Display dargestellt? Bitte mit diese Library, weil das die einzige 
ist die bei mir funktioniert hat.

von Benedikt (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich verwende das Display TLX-1013 von Toshiba mit einem Atmega 128. Das 
Display ist richtig angeschlossen, aber es funktioniert nur teilweise. 
Nur die obere Hälfte des Displays funktioniert. Auf der unteren Hälfte 
wird nur Datenmüll angezeigt. Dieses Problem haben wohl auch schon 
andere mit dem Display gehabt, jedoch konnte ich keine Lösung zu diesem 
Problem finden. Der einzige Hinweis den ich gefunden habe, ist, dass ich 
irgendwas im Adressbereich ändern muss. Ich habe versucht mir aus den 
angehängten Datenblatt die Informationen herauszulesen, bin jedoch auf 
nichts gestoßen, was mich weiterbringen könnte. Die Informationen auf 
Seite 10 sehen aber nicht uninteressant aus.
Das Display hat 160x128 Pixel und ich verwende die Library aus diesem 
Thread.
Danke schonmal für eure Antworten.

von Ralf (Gast)


Lesenswert?

> Die Informationen auf Seite 10 sehen aber nicht uninteressant aus.
Dann verwende die Infos doch:
Daten für die obere Hälfte des Display liegen im Adressbereich von 
0x0000-0x0FFF, und für die untere Hälfte von 0x8000-0x8FFF, macht also 
zweimal 4kB.
Die Software muss das halt passend umbiegen. Also wo konkret ist das 
Problem?

Ralf

von Benedikt (Gast)


Lesenswert?

Das konkrete Problem ist diese Informationen in die Lib zu übernehmen...
Ich weiß nicht, wo ich diese Informationen eintragen muss.

von Benedikt (Gast)


Lesenswert?

Vllt. könnte mir zumindest jemand sagen, wie ich vorgehen soll, um die 
Lib zu ändern, also ein paar erste Schritte...

von Ralf (Gast)


Lesenswert?

Hi Benedikt,

> Das konkrete Problem ist diese Informationen in die Lib zu übernehmen...
> Ich weiß nicht, wo ich diese Informationen eintragen muss.
Siehste, dass ist ne Aussage mit der ich was anfangen kann :)

Okay, du musst folgendermaßen vorgehen:
- lokalisiere die Funktionen, die Text- und Grafikdaten ins RAM des 
Displays schreiben (wenn die Lib was taugt, sollten das genau zwei 
Funktionen sein)
- diese Funktionen musst du so erweitern, dass sie die RAM-Zugriffe 
entsprechend umbiegen, d.h. du musst erkennen, wo adressmäßig die obere 
Hälfte endet und demnach auf die Adresse der folgenden Zugriffe 0x8000 
dazu addieren

Hört sich schwieriger an, als es (wahrscheinlich) ist. Wenn du 
Schwierigkeiten hast, das umzusetzen, frag nochmal. Ich schlage vor, 
dass du die Sourcen deiner Lib verwendest (ich mag nicht eine der weiter 
o.g. Sourcen verwenden, für den Fall dass die nicht mehr aktuell sind 
o.ä.)

Ralf

von Ralf (Gast)


Lesenswert?

EDIT:
> Ich schlage vor, dass du die Sourcen deiner Lib _verwendest_
Sollte natürlich postest heissen, sorry.

Ralf

von Benedikt (Gast)


Angehängte Dateien:

Lesenswert?

Also hier ist die Lib die ich verwende. Ich schaue morgen mal rein, bin 
aber bis dahin dankbar für jeden Tipp.

von Benedikt (Gast)


Lesenswert?

Also ich habe mal reingeschaut und gesucht, aber so ganz klar ist mir 
noch  nicht welche Funktionen dafür zuständig sind.

von Benedikt (Gast)


Lesenswert?

Also ich habe jetzt ein paar Sachen probiert, aber ausser 
Compilerfehlern habe ich nichts erreicht. Ich wäre für einen Tipp sehr 
dankbar...

von Benedikt (Gast)


Lesenswert?

Ich gebe bald auf. Kann mir bitte mal jemand helfen, dass in der Lib zu 
ändern. Ich finde nicht die genaue Stelle wo ich das umändern kann. Bzw. 
wie es hinzufügen kann.

von Ralf (Gast)


Lesenswert?

Ich würde mal vermuten, dass die Funktion "glcd_set_address()" der erste 
Ansatzpunkt ist. Es wird das Problem nicht auf einen Schlag lösen, 
müsste aber dafür sorgen, dass du in der unteren Hälfte auch was 
siehst...

Ralf

von Benedikt (Gast)


Lesenswert?

Ja genau die Funktion habe ich auch als Ansatzpunkt genommen, komme da 
aber nicht weiter. Habe auch mal bei glcd_T_BASE 0x8A00 eingetragen 
anstatt 0x0A00
Jetzt erscheinen aber auf der unteren Hälfte vielen Pixel und mittendrin 
die Zeichen die ich gesendet habe. Auf der oberen Hälfte erscheint das 
gleiche dann ohne die Pixel.

von Benedikt (Gast)


Lesenswert?

Also ich habe nochmal alles probiert, aber ich komme auf keinen grünen 
Zweig.
@Ralf: Könntest du mir dabei helfen die Lib etwas umzuschreiben. Ich 
arbeite mich gerade in das µC Gebiet ein und lerne gerade alles über ADC 
etc.
Display Rams etc wollte ich erst später durchgehen.
Ich habe leider kein anderes Display hier, sonst würde ich so lange 
einfach ein anderes nehmen...

von Benedikt (Gast)


Lesenswert?

Wenn ich unter #define glcd_T_BASE 0x8A00 eingebe anstatt #define 
glcd_T_BASE 0x0A00 und bei #define glcd_G_BASE 0x8000 anstatt #define 
glcd_G_BASE 0x0000 wird nicht, wie erwartet nur die untere Hälfte des 
Displays angesteuert, sondern beide Hälften parallel. Es erscheint exakt 
das gleiche auf beiden Hälften.
Würde jetzt nur die untere Hälfte angesteuert, hätte ich einfach beide 
Hälften einzeln über die Software nachher angesteuert. SO verstehe ich 
es aber nicht. Wie könnte ich den nur die untere Hälfte ansteuern?

von Lukas M. (luke_)


Lesenswert?

Ich hätt mal ne Frage und zwar welche Taktfrequenz muss ich den für 
einen Atmega32 nehmen?
mfG

von oobi (Gast)


Lesenswert?

Hi,

habe ein TLX-1013-E0,
an einem NetIO mit atmega 32 mit 16Mhz.
Daten Port C,den rest an Port D.

Nur ich finde überall andere pin belegungen??
Es kommen Symbole und das Display blinkt.
Welcher ist der RV pin??

Fuse müssten eigentlich soweit passen.
Verkabelung auch.
Liegt es an JTAG? wenn ich den ausmache kann ich nicht mehr per ISP 
flashen?

Gruß
oobi

von hft47 (Gast)


Lesenswert?

Hei oobi


Habe gerade Deinen Eintrag gelesen und das Datenblatt von Pollin 
geladen.
Ein bekanter von mir hat das gleiche.
In dem ist für ISP der Port B,also Miso,Mosi,SCK zuständich.
 Wenn Du den Port C frei benutzen willst, must Du JTAG deaktivieren.
Ich versuche auch gerade ein TLX-1013-E0 zum laufen zu bringen(am 
mega32). Bei mir liegt das Poblemm auch darin, das nur die obere Hälfte 
ordentlich arbeitet. Ich programiere mit Bascom. Habe es auch mit C 
versucht, aber leider noch kein funktionierendes Programm, das ich mit 
WinAvr an meine Aufgabe anpassen könte, gefunden.

vileich bekomme ich doch noch Hilfe. habe 4 Displays.

mfg
hft47

von oobi (Gast)


Lesenswert?

Hi
ja bei dem NetIO liegt ISP aber doch auch port B.

Habe mitlerweile alle Ports ma durchprobiert im moment habe ich Daten 
auf Port C und den rest auf Port A.

hft47 kannst du mir mal die Pin belegung schicken und welche pins 
benutzt werden, bin mir nicht ganz sicher ob das alles so richtig 
ist,weil die Software die ich von hier habe und mein display 
unterschiedliche belegung hat.

Gruß
oobi

von hft47 (Gast)


Lesenswert?

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

Config Graphlcd = 240 * 128 , Dataport = Portb , Controlport = Portd , 
Wr = 2 , Rd = 3 , Ce = 4 , Cd = 5 , Reset = 6 , Fs = 7 , Mode = 8
eigentlich egal welche pins. Gehen alle. Leider bei meinen Displays 
immer nur die obere Hälfte.

von oobi (Gast)


Lesenswert?

Hast du auch ein TLX-1013-E0??

weil laut datenblatt ist bei mir Wr=5 , RD=6 , CE=7 , C/D=9 , rst=10 , 
D0-D7=11-18

mein display hat auch nur eine auflösung von 160x128 pixel.


Gruß
oobi

von hft47 (Gast)


Angehängte Dateien:

Lesenswert?

'The connections of the LCD used in this demo
'LCD pin                  connected to
' 1        GND            GND
 '2        GND            GND
 '3        +5V            +5V
 '4        -9V            -9V potmeter
 '5        /WR            PORTC.0  (PORTD.2)oder Porta.0 oder B.0
 '6        /RD            PORTC.1  (PORTD.3)
 '7        /CE            PORTC.2  (PORTD.4)
 '8        C/D            PORTC.3  (PORTD.5)
 '9        NC             not conneted
 '10       RESET          PORTC.4  (PORTD.6)
 '11-18    D0-D7           PA      (PB oder c
 '19       FS             PORTC.5  (PORTD.7)
 '20       NC             not connected

von holger (Gast)


Lesenswert?

@hft47

Dein Display sieht aus wie ein 128x128 und nicht 240x128.

von hft47 (Gast)


Lesenswert?

es ist ein TLX1013E0 160X128

von holger (Gast)


Lesenswert?

>es ist ein TLX1013E0 160X128

Na gut, dann eben 160 statt 128. Und wieso trägst du es als 240er ein?

von hft47 (Gast)


Lesenswert?

leider arbeitet BasCom nur mit Auflösungen von 240x128,128x128,128x64 
usw

von hft47 (Gast)


Lesenswert?

die untere Hälfte wird von der Bascom glcd.lib eben leider nicht 
unterstüzt.
Auch in C-Programmen habe ich nichts finden können, wo das geht. Da die 
Anzeigen doch schon relatiev alt sind, gab es früher einige Beiträge. 
Mit keinem richtigen suchervolg auf eine lib für dieses Display. siehe 
oben

von hft47 (Gast)


Lesenswert?

bei dieser Configuration arbeitet wenigstens die obere Hälfte präziese 
in Text und Grafigbefehlen von Baskom. Auch die einstellung 240x64 geht 
für die obere Hälfte. gerade noch mahl getestet.

von oobi (Gast)


Lesenswert?

was ich nicht verstehe ich habe die WetterStationDisplay software von 
hier benutzt und auch so angeschlossen aber es ging nicht ne zeitlang 
kamen seltsame zeichen und das Display hat geblinkt.
Jetzt habe ich es wieder anderes angeschlossen und jetzt bleibt das 
Display dunkel.
Eigentlich müsste ja "Hello World" kommen?
Ka was ich noch machen soll.
Jemand ne idee??

Gruß
oobi

von hft47 (Gast)


Lesenswert?

Schreibst du in C?

von oobi (Gast)


Lesenswert?

nee ich nimm einfach die "WetterStationDisplay" software die hier in dem 
Beitrag jemand hochgeladen hat und passe einfach die Pins an.

gruß
oobi

von hft47 (Gast)


Lesenswert?

habe gerade "WetterStationDisplay" in WinAvr geladen, versucht die pins 
anzupassen, kompeliert, gebrannt AVRm32, 2 wagerechte lienien das wars

von hft47 (Gast)


Lesenswert?

fehler beim anpassen
jezt läuft di obere hälfte des display.
Ähnlich alter Bildschirmschoner (Rotierende Lienien)

von oobi (Gast)


Lesenswert?

@ hft47 was hast du für ein Board oder hast du einfach nur ein 
atmega32??
und an welchen Port hast du was jeweils dran das es mit der 
Wetterstation leuft?

Gruß
oobi

von hft47 (Gast)


Lesenswert?

ich benutze zum testen ein Bort von Pollin.
Ich habe im prog t6963c.h geändert

/*
 *  FG                (1)  frame ground
 *  GND               (2)  ground
 *  VDD               (3)  LCD logic supply  +5 DC
 *  VO                (4)  Contrast
 *  /WR               (5)  <-->
 *  /RD               (6)  <-->
 *  /CE or /CS        (7)  <-->
 *  CD or RS          (8)  <-->
 *  /RST              (9)  <-->

 *  D0                (10) <-->
 *  D1                (11) <-->
 *  D2                (12) <-->
 *  D3                (13) <-->
 *  D4                (14) <-->
 *  D5                (15) <-->
 *  D6                (16) <-->
 *  D7                (17) <-->

 *  FS                (18)           font select       HI : narrow 
LOW : Wide   ( normal )
                                                       40 with 6x8 font 
30 with 8x8 font
 *  Vout              (19)           Variable Resistor (~5K Ohm) with 
GND and centre with VO ( Pin 4 ). Used for contrast adjustment.
 *  BLA               (20)           Back light + (+5V DC)
 *  BLK               (21)           Back light - (GND)
 *  DSPON             (22)           I don't Know   but i think means 
display ON or ...
 */



/****************************************
                  // **
           PIN DEFINITIONS      // **
                  // **
*****************************************/
                  // **
#define glcd_wr_PIN    2      // **0
#define glcd_wr_PORT  PORTD    // **
                  // **
#define glcd_rd_PIN    3      // **4
#define glcd_rd_PORT  PORTD    // **
                  // **
#define glcd_ce_PIN    4      // **1
#define glcd_ce_PORT  PORTD    // **
                  // **
#define glcd_cd_PIN    5      // **3
#define glcd_cd_PORT  PORTD    // **
                  // **
#define glcd_rst_PIN  6      // **2
#define glcd_rst_PORT  PORTD    // **
                  // **
#define glcd_fs_PIN    7      // ** 0, PortD
#define glcd_fs_PORT  PORTD    // **
                  // **
#define glcd_rv_PIN    1      // **
#define glcd_rv_PORT  PORTD    // **
                  // **
#define glcd_DATA_PORT     PORTC  // **
#define glcd_DATA_PIN    PINC  // **
#define glcd_DATADIR    DDRC  // **
                  // **
//***************************************

von oobi (Gast)


Lesenswert?

Stimmt jetzt das



/*
 *  FG                (1)  frame ground
 *  GND               (2)  ground
 *  VDD               (3)  LCD logic supply  +5 DC
 *  VO                (4)  Contrast
 *  /WR               (5)  <-->
 *  /RD               (6)  <-->
 *  /CE or /CS        (7)  <-->
 *  CD or RS          (8)  <-->
 *  /RST              (9)  <-->

 *  D0                (10) <-->
 *  D1                (11) <-->
 *  D2                (12) <-->
 *  D3                (13) <-->
 *  D4                (14) <-->
 *  D5                (15) <-->
 *  D6                (16) <-->
 *  D7                (17) <-->

 *  FS                (18)           font select       HI : narrow
LOW : Wide   ( normal )
                                                       40 with 6x8 font
30 with 8x8 font
 *  Vout              (19)           Variable Resistor (~5K Ohm) with
GND and centre with VO ( Pin 4 ). Used for contrast adjustment.
 *  BLA               (20)           Back light + (+5V DC)
 *  BLK               (21)           Back light - (GND)
 *  DSPON             (22)           I don't Know   but i think means
display ON or ...
 */


oder die Pin belegunf?

'The connections of the LCD used in this demo
'LCD pin                  connected to
' 1        GND            GND
 '2        GND            GND
 '3        +5V            +5V
 '4        -9V            -9V potmeter
 '5        /WR            PORTC.0  (PORTD.2)oder Porta.0 oder B.0
 '6        /RD            PORTC.1  (PORTD.3)
 '7        /CE            PORTC.2  (PORTD.4)
 '8        C/D            PORTC.3  (PORTD.5)
 '9        NC             not conneted
 '10       RESET          PORTC.4  (PORTD.6)
 '11-18    D0-D7           PA      (PB oder c
 '19       FS             PORTC.5  (PORTD.7)
 '20       NC             not connected



Muss zwischen 19 ein 5K wieder stand zu +5V


Gruß
oobi

von hft47 (Gast)


Lesenswert?

ich habe keinen R verwendet außer Kontrastpoti

von oobi (Gast)


Lesenswert?

und welche pin belegung hast du 1. oder 2.??

von hft47 (Gast)


Lesenswert?

Dataport = Portc , Controlport = Portd ,
Wr = Portd.2 , Rd = Portd.3 , Ce = Portd.4 , Cd = Portd.5 , Reset = 
Portd.6 , Fs = Portd.7

von oobi (Gast)


Lesenswert?

das schon klar,
ich mein die Pin belegung von dem LCD welcher pin was ist.

 FG                (1)  frame ground
 *  GND               (2)  ground
 *  VDD               (3)  LCD logic supply  +5 DC
 *  VO                (4)  Contrast
 *  /WR               (5)  <-->
 *  /RD               (6)  <-->
 *  /CE or /CS        (7)  <-->
 *  CD or RS          (8)  <-->
 *  /RST              (9)  <-->

 *  D0                (10) <-->
 *  D1                (11) <-->
 *  D2                (12) <-->
 *  D3                (13) <-->
 *  D4                (14) <-->
 *  D5                (15) <-->
 *  D6                (16) <-->
 *  D7                (17) <-->

 *  FS                (18)

oder

1        GND
 '2        GND
 '3        +5V
 '4        -9V
 '5        /WR
 '6        /RD
 '7        /CE
 '8        C/D
 '9        NC
 '10       RESET
 '11-18    D0-D7
 '19       FS
 '20       NC

Gruß
oobi

von hft47 (Gast)


Lesenswert?

ja

von hft47 (Gast)


Lesenswert?

die Zahlen in der Klammer sind die Pins am GLCD

von hft47 (Gast)


Lesenswert?

Pins am GLCD
Pin1        GND
 " 2        GND
 " 3        +5V
 " 4        -9V
 " 5        /WR
 " 6        /RD
 " 7        /CE
 " 8        C/D
 " 9        NC
 " 10       RESET
 " 11-18    D0-D7
 " 19       FS
 " 20       NC

von oobi (Gast)


Lesenswert?

gut danke dir dann weiß ich schon mal das meine grund basis stimmt dann 
werde ich nochmal rum probierenund bescheid sagen wenn was geht.


gruß
oobi

von hft47 (Gast)


Lesenswert?

ich probiere gerade mit WinAvr die t6963c.h an 160x128 anzupassen. Habe 
von 240 auf 160 pixelbreite und 20 zeichen 8x8 umgestellt. Obere Hälfte 
läuft priema. "Hallo World" wird beim zeichnen der linien an 
denPixeltreffponkten invertiert und nach weiterziehen der Liniern wieder 
richtig Dargestellt.

mfg
hft47

von hft47 (Gast)


Angehängte Dateien:

Lesenswert?

2 aufnamen

von holger (Gast)


Lesenswert?

Versuch mal das in deiner T6963c.h

void glcd_set_address(unsigned int addr){
if(addr >= 0x1000 )
{
 addr -= 0x1000;
 addr += 0x8000;
}

glcd_dput(addr%256);
glcd_dput(addr>>8);
glcd_cput(0x24);
}

Das ist wahrscheinlich noch nicht die ganze Miete,
aber evtl. siehst du dann was auf der unteren Hälfte.

von hft47 (Gast)


Lesenswert?

Danke für deinen Tip.
habe folgende Änderungen gemacht:
/* ----- Definitions concerning LCD internal memory  ------ */

#define glcd_FONT_SELECT 0        // Which Font? 1 = FS HIGH = narrow 
(6x8) / 0 = FS LOW = normal (8x8)

//#if glcd_FONT_SELECT          // narrow font
//    #define glcd_FONT_WIDTH 6      // pixel width
//  #define glcd_BYTES_PER_ROW 0    // 40 chars per row
//  #define glcd_G_BASE 0x0400      // base address of graphics memory
//#else                  // normal font
  #define glcd_FONT_WIDTH 8      // pixel width
  #define glcd_BYTES_PER_ROW 20    // 30 chars per row
  #define glcd_G_BASE 0x0000      // base address of graphics memory
//#endif

#define glcd_T_BASE 0x0a00        // base address of text memory

#define glcd_XMAX 160        // 240 limits of (x,y) LCD graphics drawing
#define glcd_XMIN 0
#define glcd_YMAX 128
#define glcd_YMIN 0

Zahlen hinte // sind die alten Werte

von hft47 (Gast)


Lesenswert?

jetzt Dein Vorschlag:

// ------------------------------------------------------------
void glcd_set_address(unsigned int addr){
if(addr >= 0x1000 )
{
 addr -= 0x1000;
 addr += 0x8000;
}

glcd_dput(addr%256);
glcd_dput(addr>>8);
glcd_cput(0x24);
}

altes auskommenteirt:

/*void glcd_set_address(unsigned int addr){
glcd_dput(addr%256);
glcd_dput(addr>>8);
glcd_cput(0x24);
}
*/

Keine Änderung.
bin leider absoluter Anfänger in C
daher sehr auf Komentare angewiesen.
wenn ich die werte der glcd_G_BASE von 0000h auf 8000h und
glcd_T_BASE 0x0a00 auf 0x8a00 ändere, werden obere und untere Seite 
gleich beschrieben. Also untere Seite ganz! Setze ich die alter Werte 
und Brenne neu, bleibt der untere Teil erhalten, der Obere wird neu 
beschrieben.


fht47

von holger (Gast)


Lesenswert?

Ich glaube es wäre einfacher bei deinem Display
A15 abzutrennen und an A12 anzuschliessen;)

von hft47 (Gast)


Lesenswert?

Was meinst Du mit A15 und A12

hft47

von holger (Gast)


Lesenswert?

>Was meinst Du mit A15 und A12

Die Adressleitungen vom T6963 zum RAM.

Dein Display ist ne Fehlkonstruktion;)

von hft47 (Gast)


Angehängte Dateien:

Lesenswert?

meinste hier !!!

von holger (Gast)


Angehängte Dateien:

Lesenswert?

Siehe Bild. Rot durchschneiden und blau verbinden.
Auf eigene Gefahr natürlich.

von hft47 (Gast)


Lesenswert?

ich weis noch nicht recht. Habe zwar 4 Stück, werde es doch lieber erst 
mit Software versuchen. Schneiden kann ich immernoch


mvf
hft47 nabend

von holger (Gast)


Lesenswert?

>ich weis noch nicht recht.

Jetzt wo es spannend wird machst du nen Rückzieher;)
Naja, musst du selber wissen. Ist schon ok.
Das Ding ist aber ne echte Krücke. Das muss man quasi
wie zwei getrennte Displays behandeln.

von hft47 (Gast)


Lesenswert?

Hei
Ich habe es riskiert!!!

Jezt werden beide Hälften parallel angesteuert.
Schade.
Ewentuell falscher Pin?
Werde mal Morgen weitermachen.
mfg
hft47

von hft47 (Gast)


Lesenswert?

Habe Adr13 auf Adr15 gelegt.
Die gleiche Sch...

mfg
hft47

von holger (Gast)


Lesenswert?

>Habe Adr13 auf Adr15 gelegt.
>Die gleiche Sch...

Bringt alles nichts. Schliess A15 wieder so an wie es vorher war.
Laut Datenblatt wird das Display bei 160 Breite im Dual Scan betrieben.
Da lässt sich nichts dran ändern. Du hast dann zwei Displays mit 160x64.
Eins geht von 0x0000 bis 0x07FF. Das zweite von 0x0800 bis 0x0FFF.
Da müsste man einiges an der Software ändern damit da was geht. Wenn
du über Zeile 63 gehst musst du einen Offset von 0x800 zur Adresse
addieren. Leider sind sowohl der Grafik als auch der Textbereich dann
in zwei Teile gesplittet. Viel Spaß beim umrechnen.

von hft47 (Gast)


Lesenswert?

Kann man diese Konstanten:

#define glcd_T_BASE 0x0a00  // base address of text memory
#define glcd_G_BASE 0x0000  // base address of graphics memory
in variable umwandeln ???
dan könte man sie im laufenden Programm hin und her umschalten in
obere oder obere und untere Hälfte!
glcd_G_BASE 0x8000  // base address of graphics memory
glcd_T_BASE 0x8a00  // base address of text memory

nach umschalten auf obere Hälfte bleibt die untere Anzeige erhalten.
Erst beide Hälften, dan obere Hälfte neu beschreiben

geht das?????????

mfg
hft47

von AtmegaMan (Gast)


Lesenswert?

Hallo alle zusammen,

zunächst einmal großes Lob und vielen Dank für die Autoren der Library!

Nach langem Suchen und Testen bin ich hier fündig geworden und die Sache 
läuft soweit einwandfrei. Ich nutze die Version die am 08.03.2006 16:43 
von Florian hier hochgeladen wurde.

Nun meine Frage: Welche Funktion ist zum Anzeigen von Bitmaps gedacht? 
Die glcd_show() sieht dafür doch erstmal nicht verkehrt aus. Doch Frage 
ich mich, warum Nico in seiner Beispiel-Bitmap den Datentyp "uint8_t" 
für das Array nutzt (char erwartet von der Funktion). Kann jemand bitte 
kurz ein Codeschnipsel posten, wie ich das Bild aus der 
"picture_beispiel.txt" anzeigen würde?

Würde mich über eine Antwort freuen:)

von Daniel (Gast)


Lesenswert?

Hallo zusammen,

ich benutze die Library jetzt seit ein paar Tagen, wirklich gut :)
Eine Frage habe ich aber:

Mir gefällt der Standard-Font von meinem T6963 ganz gut, den man über 
glcd_print(int x, int y, const char *string) ausgeben kann.

Über x und y gibt man aber ja die Spalte und Zeile an, nicht aber die x 
bzw. y-Koordinate auf dem LCD, wie der Name vermuten lässt.

Wie kann ich mit der Library an beliebigen Positionen auf dem Display 
etwas ausgeben? Mit der Font-Erweiterung (Font generieren) klappt das 
ja, geht das auch mit der Standard-Libary?

Besten Dank schon einmal,
Daniel

von bastler (Gast)


Lesenswert?

Hallo, guten Tag.
Ich habe von Pollin ein Display mit 128x64 Pixel.
Unter bascom funktioniert es.
Wie kann man deine Routinen umsetzen, das der Kreis zb bei mir auch rund 
ist?

von AtmegaMan (Gast)


Lesenswert?

@bastler

warum sollte dein Kreis nicht rund sein? Wie sieht er denn aus? 
gestaucht oder verschoben? Beschreibe das mal ein wenig.

Um meine eigene Frage zu beantworten. mit glcd_show() werden Bitmaps 
gezeigt. Man muss dazu jedoch sagen die BMP's müssen die volle Breite 
des LCD haben und somit ist eine Darstellung von 2 Bmps nebeneinander 
nicht möglich. Man gibt die Zeile (0-15 bei einem 128 pixel hohem 
Display) an und dann die Höhe der BMP in Pixel.

Ich habe mir darauf basierend eine eigene Funktion geschrieben. die mir 
eine flexibelere Positionierung ermöglicht und auch bmps nebeneinander 
passen.

Generell sei noch gesagt, dass das Array vom typ "const char []" sein 
sollte und pixel/byte der fontbreite entsprechen muss. Ein gutes Tool 
zum konvertieren ist das hier
http://en.radzio.dxp.pl/bitmap_converter/
funktioniert perfekt ;)

Viele Grüße

von Bernd (Gast)


Lesenswert?

Hey AtmegaMan,

ich bin gerade dabei auch ein Bild anzeigen zu lassen, ich hab momentan 
das Problem, daß zwar alles angezeigt wird, aber seltsamerweise der ganz 
rechte Teil wird links vom Bildschirm angezeigt.
Kannst du bitte mal dein Code posten, ich vermute ich starte nicht oben 
links in der Ecke mit anzeigen an. Ich hab eine Base adresse von 0x0200,
ich vermute da liegt mein Fehler.
Ich finde nirgends ein Codeschnipsel über das Anzeigen von Bildern.

Gruß
Bernd

von Bernhard (Gast)


Angehängte Dateien:

Lesenswert?

Grüß euch,
Ich probiere und programmiere jetzt schon eine ganze Weile herum, um 
eine Grafik richtig auszugeben...
Ich habe die aktuellste t6963c.h für mein 128x128 Display angepasst und 
habe nun folgendes Problem:
Wenn ich eine Linie von 0,0 bis 64,64 zeichne sieht die Ausgabe so aus, 
wie ich es im beiliegenden Bild gezeichnet habe, jede zweite Zeile wird 
sozusagen eine Zeile nach oben geschoben..
Ich vermute, dass das Problem nicht am Display liegt, sondern am Code, 
da eine vorherige Version (die ich versehentlich überschrieben habe) 
bereits Grafiken (Linien und Kreise) richtig dargestellt hat.
Weiters vermute ich, dass der Fehler in der Funktion glcd_pixel liegt, 
da der besagte Fehler sowohl beim Zeichnen von Kreisen, als auch bei 
Linien auftritt, welche ja beide die glcd_pixel Funktion nutzen.

Die Textausgabe funktioniert ohne Probleme. Ich hoffe mir kann jemand 
weiterhelfen, und bedanke mich schon mal im Voraus :)

grüße
bernhard

von Bernhard (Gast)


Lesenswert?

Hab den Fehler jetzt gottseidank schnell gefunden..
Ich hab die Adresse für den AdressPointer mit 128 statt 0xFF maskiert, 
um HighByte und LowByte nacheinander ins 16Bit Register schreiben zu 
können.
Saublöder Denkfehler ;).

von martha (Gast)


Lesenswert?

Hallo!

ich habe nun auch die Library zum laufen bekommen, möchte jetzt in einem 
Text ein Zahl darstellen lassen können so wie:

printf("Raum 1 %i °C",temp_r1);

wie kann ich das machen ??? sprintf ?

danke!

von martha (Gast)


Lesenswert?

Hallo!
gibt es da keine einfache Lösung?


lg Martha

von Josch (Gast)


Lesenswert?

Hallo,

ich kann auch soweit super damit arbeiten, nur habe ich das Problem wenn 
ich das Display mit FS umschalte auf 40 Zeichen pro Zeile kann ich nicht 
mehr einen Kreis zeichnen bzw. ein Viereck. Kreis sieht aus wie ein Ei 
und es fehlen Pixel und beim Viereck
geht mal ein Strich ab??

Bitte um Hilfe !

von Mike (Gast)


Lesenswert?


von MOBA 2. (Gast)


Lesenswert?

Hi,

ich habe das gleiche Problem mit den Strichen, nur ich finde den Fehler 
nicht; JTAG ist inaktiv.

Beitrag "T6963c Ansteuerungsproblem"

von Norman (Gast)


Lesenswert?

Hallo Moba2 und Mike,

das Problem mit dem Strich, wie schon richtig im Thread "Problem mit 
Kreis" erörtert wurde, liegt am Berechnungsfehler der Pixeladresse und 
Bitzuordnung. Ich habe hierzu folgenden Korrekturvorschlag:

//********************************************************************** 
*******
//  Pixel
//  Input:  Zeile,Spalte,Set/Clear
//  Output:  -
//********************************************************************** 
*******
void glcd_PIXEL(unsigned int ui_x,unsigned int ui_y, unsigned char 
uc_show1)
{
unsigned int ui_addr;       // memory address of byte containing pixel 
to write
unsigned int ui_xn;
unsigned int ui_pixels;

   if ((ui_x >= glcd_XMAX) || (ui_y >= glcd_YMAX)) return;

   if (glcd_BYTES_PER_ROW > 30) ui_pixels = 6; else ui_pixels = 8;

   ui_addr = ui_y  glcd_BYTES_PER_ROW  ui_pixels + ui_x; //Pixel, was 
veraendert werden soll

   ui_xn = ui_addr;
   ui_addr = ui_addr /ui_pixels;         //n-tes Byte ermitteln
   ui_xn= ui_xn - ui_addr * ui_pixels;   //Bitposition ermitteln
   ui_addr = ui_addr + G_BASE;    //RAM Adresse ermitteln

   glcd_set_address(ui_addr);   // set LCD addr. pointer

   if (uc_show1) glcd_cput(0xf8 | ((ui_pixels -1) - ui_xn %8)); 
//entsprechende Bitposition setzen
            else glcd_cput(0xf0 | ((ui_pixels -1) - ui_xn %8));  //oder 
ruecksetzen
}


void glcd_setpixel(int column, int row)  // set single pixel in 240x64 
array
{
   glcd_PIXEL(column,row,1);
}


void glcd_clrpixel(int column, int row)  // set single pixel in 240x64 
array
{
   glcd_PIXEL(column,row,0);
}




//********************************************************************** 
*******
//  GetPixel
//    Input:  x,y
//  Output:  0,1
//********************************************************************** 
*******
unsigned char glcd_GETPIXEL(unsigned int ui_x, unsigned int ui_y)
{
unsigned int ui_pixeldata;
unsigned int ui_addr;       // memory address of byte containing pixel 
to write
unsigned int ui_pixels;
unsigned int ui_xn;

   if ((ui_x >= glcd_XMAX) || (ui_y >= glcd_YMAX)) return(0);

   if (glcd_BYTES_PER_ROW > 30) ui_pixels = 6; else ui_pixels = 8;

   ui_addr = ui_y  linechars  ui_pixels + ui_x;
   ui_xn = ui_addr;
   ui_addr = ui_addr /ui_pixels;
   ui_xn= ui_xn - ui_addr * ui_pixels;
   ui_addr = ui_addr + G_BASE;
   glcd_set_address(ui_addr);   // set LCD addr. pointer

   glcd_cput(0xE0);
   ui_pixeldata = glcd_dget();
   return(((ui_pixeldata & 0x00FF) >> ((ui_pixels -1) - ui_xn %8)) & 
0x01);
}

von Norman (Gast)


Angehängte Dateien:

Lesenswert?

Leider gab es ein paar Kopierfehler, daher der Source nochmal als 
Anhang.

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.