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.
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
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.
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.
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
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
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.
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.
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
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
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#
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
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 :-)
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?
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
@ 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
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
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
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
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
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
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 :-)
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 ;-)
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
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
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
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
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
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!??
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
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!
> 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
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.
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
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.
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
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
Mann Mann Mann 8)
Bin ich blind gewesen...
Habe es jetzt nach nochmaligem Lesen des Threads auch gesehen...
peinlich peinlich...
Vielen Dank
Gruß
Clyde
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
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 :(
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
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
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
>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.
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?????
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?
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.
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
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.
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
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?
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?
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 :(
@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
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
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
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
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
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....
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
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
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
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
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!
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
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 :(
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.
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
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
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
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.
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.
> 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
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
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.
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
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.
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...
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?
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
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
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
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
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
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.
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
@ 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
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
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
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.
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
>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.
>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.
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
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:)
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
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?
@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
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
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
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 ;).
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!
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 !
Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.
Wichtige Regeln - erst lesen, dann posten!
Groß- und Kleinschreibung verwenden
Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang