also zumindest gibt es solche verbinder, ich weiß nur nicht, wo man sie kaufen kann. hier http://www.simpex.ch/fileadmin/berei...r/kap05_02.pdf auf der 1. seite
Druckbare Version
also zumindest gibt es solche verbinder, ich weiß nur nicht, wo man sie kaufen kann. hier http://www.simpex.ch/fileadmin/berei...r/kap05_02.pdf auf der 1. seite
so, ich melde mich auch mal wieder zum thema. hab heut mal wieder en bisschen mit dem display gearbeitet und mir nen character-generator für den grafikmodus programmiert.
aber ist es nicht möglich grafikmodus und textmodus gleichzeitig zu betreiben?
:-D ist typisch, bevor man schaut, obs einfach auch geht, programmiert man mal drauf los
@Amazz
im Grafikmodus muss man alles selbermalen, dH. wenn Text erscheinen soll braucht man irgendwo das Bitmuster dafür.
Ist aber bei KS0108 auch so, Problem ist nur, das man die Libs zum KS0108 nicht brauchen kann, weil bei diesem LCD der Grafikspeicher im Prinzip um 90 Grad gedreht ist.
ja das ist mir schon klar, dass ich im grafikmodus alles selber machen muss. das hab ich auch gemacht, aber ich hab mir gedacht, dass es vieleicht möglich ist, zwischen den modi zu switchen, sodass ich die characters vom textmodus anzeigen kann und zusätzlich meine eigenen pixel setzen kann
ich hab das bei mir mit dem gemischten modus so gelöst, dass ich die bildschirmdaten im speicher erzeuge und "parallel" die ganze zeit über immer und immer wieder die daten zum display schaufle ... manchmal hat man tearing effekte aber damit kann ich leben, dafür hab ich vektorgrafik und textmodus ..m das mit dem bildern müsst ich auch mal probiern ^^
das klingt schon mal gut, bin grad dabei noch meinen plan B auszuprobieren, wenn der auch scheitert, werd ich deine methode mal anschaun.
grund meiner frage war das langsame "auf und abbauen" meine buchstaben, da ich jeden buchstabe pixel für pixel aufbaue (was auch seinen grund hatte, da ich dadurch "transparent" schreiben kann und zusätzlich meine buchstaben pixelgenau an die stelle bekomm, die ich will)
mein plan b ist jetzt die etwas aufwendigere variante, indem ich erst vom display auslese, welche pixel gerade gesetzt sind und wenn sie in meinem schriftfeld liegen, werden sie miteinbezogen(also entweder gesetzt lassen, oder negieren..). und dann wird byteweise zum display gesendet und nicht mehr bitweise.
mal sehn obs dann schneller geht.
dank euch schonmal!
die idee hatte ich auch, war aber zum scheitern verurteilt ... du musst mind. 2 mal lesen, bevor du gültige daten aus dem display bekommst ... das frisst unmengen zeit, die lösung im speicher zu arbeiten vermindert schonmal die zeit beim "zeichnen" der buchstaben, und wenn ich dann anschliessend immer wieder den speicherinhalt zum display schiebe hab ich sogar noch eine art multitasking ala round robinZitat:
indem ich erst vom display auslese, welche pixel gerade gesetzt sind
while(1) {
input/output();
drawobject();
write_ONE_byte_to_display();
}
wenn ich nur einzelne bytes schreibe kann cih getrost die verzögerung durch das display ignorieren
alternativ kann man auch das ganze display auf einmal rüberschieben, aber dann bekommtm man ne nette verzögerung
stimmt, man mus ja doppelt auslesen.. naja, ich denk aber dass es trotzdem noch schneller ist 3 mal was ans display zu senden (2xstatus +1xschreibbyte) als 8 mal was zu senden (jedes bit).
ich hab die funktion gestern noch net fertig bekommen, werds demnächst machen.
wie kommstn auf sowas ?Zitat:
als 8 mal was zu senden (jedes bit).
ich sende doch nicht jedes bit einzeln ... ich sende pro schleifendurchlauf ein ganzes byte ans display, dann inkrementiert sich im display der adresszeiger und ich meinen im array und im nächsten umlauf ist das nächste bit fällig, bis ich zum nächsten display komme
hab ja auch extra ONE_byte geschrieben und nicht bit oder whole_display XD
ich glaub wir haben aneinander vorbei geredet :-)
ich meinte mit dem "ein bit" die erste variante von mir(also jedes pixel einzeln setzen). ich muss also 8 mal ans display senden, dass es 8 pixel schreibt. in der byte variante wäre es also schneller, da man ja ein komplettes byte (also eine 8-pixel information) sendet. es gibt ja den befehl "set bzw. clear pixel" oder den befehl "write data".
mein eintrag war der vergleich von der ersten und der zweiten variante von mir.