Je kent ze wel, die LCD dot matrix displays met hun kleine letterkes.
Wel ik zou nu eens graag de twee rijen van een 2*24 karakters display combineren tot één lijn van 24 groooooote karakters.

Ik dacht volgende stappen te doen in de µC
1) vier "user defined characters" maken voor een grote 1
2) deze vier karakters naar lijn1 pos1; lijn1 pos2; lijn2 pos1 en lijn2 pos2 te sturen
3) data in de vier user defined characters aanpassen voor een grote 2
4) de vier aangepaste karakters naar lijn1 pos3; lijn1 pos4; lijn2 pos3 en lijn2 pos4 te sturen
5) enz...

Op die manier zou ik een grote "12" krijgen op de karakters 1 tem 4 van lijnen 1 en 2.

Maar ipv een grote 12 krijg ik een grote 22 :(:(

Als ik een tijd wacht na het schrijven van de grote 1 staat er daadwerkelijk een grote 1 op de LCD (code is dus ok). Na het aanmaken en schrijven van de grote 2 wordt die 1 blijkbaar overschreven.
Waarom? Wel ik denk dat in DDRAM niet de data van user defined char1 tem 4 staat maar wel het adres van user defined char1 tem 4. Als ik die nu wijzig voor de grote 2 worden ook de posities van de grote 1 overschreven, ze verwijzen immers naar dezelfde adressen :(:(

Ik kan natuurlijk de 8 user defined chars gebruiken maar dan is mijn probleem gewoon opgeschoven. (Heb dat trouwens gedaan met een mooie grote "12" tot gevolg.)

Enig idee hoe ik dit anders kan/moet aanpakken.

Alvast bedankt voor enige reactie...

Een grafisch LCD kopen. Opgelost, slotje.

Het klopt inderdaad dat de DDRAM alleen het address (of ASCII code) van de user defined characters bevat. Het is dus volgens mij niet mogelijk dezelfde user defined character meerdere malen her te gebruiken in één view...

Misschien uitkijken naar een grafisch LCD??

De controller moet continu de boel verversen op de frame rate. Dan is het natuurlijk wel een vereiste dat het te schrijven karakter beschikbaar blijft...

Op 28 oktober 2007 17:23:00 schreef Arco:
De controller moet continu de boel verversen op de frame rate. Dan is het natuurlijk wel een vereiste dat het te schrijven karakter beschikbaar blijft...

Alle data blijft beschikbaar maar schrijven naar een LCD is niet snel genoeg om een soort multiplexing te maken, had ik al geprobeerd :) :(

Als je de user defined characters overschrijft, blijft de character info dus niet beschikbaar...
Een LCD is geen statisch geheel; de interne controller moet op de framerate de display inhoud verversen. Daarvoor moet 'ie natuurlijk wel weten wat er op die positie staat...

[Bericht gewijzigd door Arco op (45%)]

Op 28 oktober 2007 17:06:44 schreef FullPower:
Het klopt inderdaad dat de DDRAM alleen het address (of ASCII code) van de user defined characters bevat.

Klopt. Een 8-char LCD kan je daardoor 'full graphical' gebruiken door de ascii waarden 0..7 naar de DDRAM te schijven en daarna alleen naar behoefte de user defined characters aan te passen.

Over een grafisch display gesproken

Waar zijn die dingen goedkoop te krijgen
Controller: T6963C
Working voltage: 5V (dus geen 10 volts voor het contrast)
Background light: Blue (white dots)
240 x 128 Blue

Is het dus met een char.lcd alleen mogelijk om 8 user definable characters aan te maken en te gebruiken op het scherm??

Er is geen mogelijkheid om er meer aan te kunnen maken??

ik doe dat regelmatig.
ik heb een custom font gemaakt die er als volgt uit ziet

verticale streep links
verticale streep rechts
horizontale streep boven
horisontale streep onder
horizontale streep boven + onder

op die manier kan ik dan grote karakters maken


  _
 |_|  streep rechts , streep boven onder , streep links
  _|  spatie , streep onder, streep links
  
 |_|  streep rechts, streep onder , streep links
   |  spatie,spatie,streep links.

werkt vlekkeloos voor alle karakters die je kan bouwen op de 7 segment font ook.

en je hebt maar 5 custom karakters nodig. dus je hebt er nog 3 over.
als je de verticale strepen zo bouwt is het nog 'cool'
ook


 O  ( streep links pixelmap)
OO
OO
OO
OO
OO
 O 

je zou door nog 2 extra chars te gebruiken ook dit kunnen doen :

top line streep rechts


 O
OO
OO
OO
OO
OO
OO

bottom line streep rechts


OO
OO
OO
OO
OO
OO
 O

dat laatste special character zou je dan kunnen gebruiken om ene mooie middenstrepe te maken ( dat lukt aleleen als er geen spatie is tussen de 2 character rijen . bij de meeste is die spatie er wel ( alleen optrex heeft displays waar de spatie er niet is ) anders trekt het op niks ...

ieder groot karakter heeft dus 3 kleine karakters nodig om te tonen. je hebt geen spatie nodig tussen de karakters. je mag direct aan elkaar schrijven.