Hallo, schau mal hier ganz unten...
Dort ist ja solch eine Große Uhr, ich denke bei Dieser Lösung kommst Du mit 8 selbst Definierten Zeichen aus...
Gruß Sebastian
Hallo,
ich will eine Uhr bauen. nur sieht man auf einem 2x16 Display nicht wirklich viel. also habe ich mir gedacht das ich einfach große Zeichen darstelle.
aber leider geht das mit deflcdchar ja nur bis zu 8 Zeichen.
ich habe es geschafft zwei zeichen auszugeben aber da ich aber pro zeichen 4 felder benötige und ich 8 darstellen will reicht das nicht ganz.
kann ich das irgendwie die begrenzung umgehen? oder einfach per datenfeld die zeichen laden?
mit dem stückchen code zeigt er die ersten beiden zahlen an.Code:'********************************** '* Atmega8 mit großen Zahlen * '********************************** $regfile "m8def.dat" $crystal = 1000000 'blaues display Config Lcdpin = Pin , Db4 = Portd.2 , Db5 = Portd.3 , Db6 = Portd.4 , Db7 = Portd.5 , E = Portd.1 , Rs = Portd.0 Config Lcdbus = 4 Config Lcd = 16 * 2 'Zeichen definieren '**** 1 **** Deflcdchar 0 , 32 , 1 , 3 , 7 , 15 , 1 , 1 , 1 ' replace ? with number (0-7) Deflcdchar 1 , 32 , 16 , 16 , 16 , 16 , 16 , 16 , 16 ' replace ? with number (0-7) Deflcdchar 2 , 1 , 1 , 1 , 1 , 1 , 7 , 15 , 32 ' replace ? with number (0-7) Deflcdchar 3 , 16 , 16 , 16 , 16 , 16 , 30 , 31 , 32 ' replace ? with number (0-7) '**** 2 **** Deflcdchar 4 , 32 , 7 , 15 , 32 , 32 , 32 , 7 , 15 ' replace ? with number (0-7) Deflcdchar 5 , 32 , 28 , 30 , 6 , 6 , 6 , 30 , 28 ' replace ? with number (0-7) Deflcdchar 6 , 12 , 12 , 12 , 12 , 12 , 15 , 7 , 32 ' replace ? with number (0-7) Deflcdchar 7 , 32 , 32 , 32 , 32 , 32 , 28 , 30 , 32 ' replace ? with number (0-7) Cls 'wichtig, muss hin Do Cls '* 1 ******************************** Locate 1 , 1 Lcd Chr(0) Locate 1 , 2 Lcd Chr(1) Locate 2 , 1 Lcd Chr(2) Locate 2 , 2 Lcd Chr(3) Wait 1 '* 2 ******************************** Locate 1 , 3 Lcd Chr(4) Locate 1 , 4 Lcd Chr(5) Locate 2 , 3 Lcd Chr(6) Locate 2 , 4 Lcd Chr(7) Wait 1 Loop
also meine frage, kann ich irgendwie mehr eigene zeichen definieren. oder gibt es eine andere möglichkeit solche großen zeichen darzustellen?
cu arno
PS: warum kann ich keine bilder ochladen. es kommtimmer die meldung das ich eine grenze von 1MB erreicht hätte. mein bild is nur 6k groß.
Hallo, schau mal hier ganz unten...
Dort ist ja solch eine Große Uhr, ich denke bei Dieser Lösung kommst Du mit 8 selbst Definierten Zeichen aus...
Gruß Sebastian
ja, sowas habe ich schon für 4x20 displays gesehen. aber bei 2x16 geht das leider nicht auf die art. da muss was anderes her.
thx arno
o weh, richtig, Du hast 2x16, sorry, dann kommt diese Lösung nicht in
Frage ...
Du kannst aber nur 8 Zeichen selber definieren....
Ich weiß nicht wie es dann aussehen wird, aber was ist wenn Du Ecken definierst, z.B.
usw.Code:***** * ***** * * * * * * * * * * * * * ***** *****
Wenn man die dann gekonnt im raster 2x2 Zeichen setzt, könnte man schon bald alle Zeichen 0-9 abdecken, oder?
Gruß Sebastian
Wie wär's denn mit ner Binäruhr ?
zB.:
5 Bit für die Stunden: 10101 = 21 Uhr (in der ersten Zeile)
7 Bit für die Minuten: 0110000 = 48 Minuten (in der zweiten Zeile)
Geanau, Da ich zur Zeit sowieso mit einem Display dran bin habe ich es versucht mit den Ecken..... Für die 1 und 0 hat es noch gereicht, bei 2 hab ich leider festgestellt, daß mir die 8 Zeichen doch nicht reichen.....Wie wär's denn mit ner Binäruhr
Gruß Sebastian
@izaseba
ja, die idee mit den ecken ist gut, nur leider benötigt man mehr zeichen als man definieren kann.
die binäruhr wäre ne idee, aber da muss man ja bei abelesen rechnen, ausserdem kann man de ganz leicht mit LEDs bauen, kann man sich also das display sparen.
kann man eventuell per assembler da noch paar zeichen laden. als speicher kann man ja den eeprom nutzten.
cu arno
Ich befürchte, da hilft kein Assembler, ind kein Weihwasser,
die Beschränkung liegt bei HD44780 der kann nur 8 benutzerdefinierte Zeichen
Gruß Sebastian
...bastel Dir doch `ne Sub, die bei jedem Aufuf die Zeichen nach Deinen Wünschen neu definiert und darstellt und per locate positioniert. Wenn man die Zeilen dann schnell genug refresht, dann müsste es doch gehen.
Hast du schon mal im Datenblatt des LCD nach Sonderzeichen gesucht ?
Ich kann mir vorstellen das da einige dabei sind die Du mit einbauen könntest.
Gruß Sven
Lesezeichen