Go Down

Topic: Größere Schrift auf S65 Shield (Read 3 times) previous topic - next topic

borism

Gibt es eine möglichkeit Text auf dem S65 Shield größer auszugeben. Dabei ist nur eine 12x8 Schriftart. Suche jetzt was in ~ doppelter Größe.

Jemand ne Idee, wo ich sowas bekomme ohne das Pixel für Pixel selbst erstellen zu müssen?

Danke  :)

Udo Klein

Schau mal da http://www.mikrocontroller.net/topic/99701
Der GLCD Fontcreator kann fonts aus Windows / Linux importieren.

Wenn Du auf 24x16 hochgehst, dann koennte es sogar fast schon funktionieren Fonts mit Metafont zu rendern und dann umzurechnen. Ein Programm dafür kenne ich nicht, wäre aber auch nicht so schwer zu schreiben.

Und hier http://websitetips.com/fonts/pixel/ gibt's jede Menge Links auf Pixelfonts.

Schreibe mal auf wie Du dann Dein Ergebnis hinbekommen hast. Bei mir steht das Problem demnächst auch mal an. D.h. ich habe schon ein bischen mit dem Font Creator gespielt, aber immer noch keinen Font gefunden der mir so richtig zusagt.

Gruß, Udo
Check out my experiments http://blog.blinkenlight.net

Andreas Watterott

Hallo,

Man könnte den vorhanden Font per Software auch in der Größe verdoppeln. Sieht dann aber etwas pixelig aus.

Falls Interesse besteht, dann kann ich das gerne mit in die S65-Software-Lib aufnehmen bzw. programmieren.

(Eine extra Schritfart nimmt auch ziemlich viel Platz im Flash ein.)

Gruß
Andreas

borism

Die normale Schriftart verdoppelt reicht vielleicht schon.
Kann man das evtl. sonst auf die SD-Karte auslagern?

Andreas Watterott

Das wäre möglich. Aber das Zeichnen der Fonts wird daduch wahrscheinlich sehr langsam, weil man aufgrund der geringen RAM-Größe die Daten direkt von der Karte laden müsste.


Gruß
Andreas

borism

Okay, noch langsamer wäre vielleicht nicht so gut.

Würde mich freuen wenn das aber mit dem doppelt-großem Font klappen würde :)

Danke schonmal.

Andreas Watterott

Hi,

Ich habe jetzt eine scale-up Option mit eingebaut - ist aber noch ungetestet. Wenn ich es schaffe dann teste ich den Code morgen abend.

drawText(x, y, "text", size, color, bg_color)
size 1 = normal
size 2 = doppelte Größe
size 3 = dreifache Größe
...

http://www.watterott.net/arduino/s65-shield_v009.zip

Gruß
Andreas

borism

Wow, klasse Support, ich werds gleich testen.  :)

borism

#8
Nov 16, 2009, 11:49 pm Last Edit: Nov 17, 2009, 12:05 am by borism Reason: 1
Aus:
Code: [Select]
lcd.drawText(0, 0, "text", 1, RGB(255,255,255),RGB(0,0,0));
lcd.drawText(0, 20, "text", 2, RGB(255,255,255),RGB(0,0,0));
lcd.drawText(0, 40, "text", 3, RGB(255,255,255),RGB(0,0,0));
lcd.drawText(0, 80, "text", 4, RGB(255,255,255),RGB(0,0,0));


wird:


die zeilen werden mit anderen Zeichen überschrieben wenn die oben genannten Zeilen im Loop laufen.

Wie man sieht werden auch die Buchstaben hochgezählt.
T, U, V, W..... an erster Stelle z.b.

Werde mir auch gleich nochmal die Modifikationen anschauen, mal sehen ob ich daraus schlau werde :)

wenn ich im Programm die Buchstaben rückwärts rechne, klappt es aber hervorragend.




Vielen Dank nochmal an dieser Stelle ! :)

Andreas Watterott

Ich habe die Software gerade aktualisiert und jetzt sollte es funktionieren.

Gruß
Andreas

borism

#10
Nov 18, 2009, 04:28 pm Last Edit: Nov 18, 2009, 04:38 pm by borism Reason: 1

Jep, läuft :)

Wo ich hier grad den Spezi im Board hab:
Wird es noch eine Funktion wie fillCircle geben?
Wenn ich jetzt nen gefüllten Kreis benötige, habe ich das mit ner Schleife gemacht, die den Radius hochzählt.
Dann gibts aber noch paar Pixel die ausgelassen werden.

Gibts da ne andere Möglichkeit?

Andreas Watterott

Hi,

Ich habe eine fillCircle() Funktion noch mit in die v0.09 aufgenommen.


Gruß
Andreas

the-fallen

Hallo, leider funktioniert die Suche in dem Forum nicht (-> Internet Server Fehler), meine Frage passt aber recht gut hierher:

Ich möchte die Schrift ändern, genauer gesagt eine kleinere nutzen(z.B. 8x8 oder 8x9). Ich habe gesehen das es die font_8x12.c und font_8x12.h gibt. Ich gehe davon aus dass darin die fonts definiert sind.
Kann man die ersetzen? Wenn ja, was muss man tun.

Danke für die Hinweise.

PS: Das S65-Shield ist echt Klasse.

Andreas Watterott

Hallo.

Quote
Ich möchte die Schrift ändern, genauer gesagt eine kleinere nutzen(z.B. 8x8 oder 8x9). Ich habe gesehen das es die font_8x12.c und font_8x12.h gibt. Ich gehe davon aus dass darin die fonts definiert sind.
Kann man die ersetzen? Wenn ja, was muss man tun.

Ja, die kann man auch ersetzen oder ändern. Dazu braucht man aber die entsprechenden Fontdaten.
In meinem WebRadio Projekt ist eine 8x8 Schrift [1] enhalten. Diese werde ich auch mit in die nächste Version der S65-Lib aufnehmen.
Das Problem ist nur der Speicherplatz. Auf einem Mega168 wird es wahrscheinlich sehr knapp...

[1] http://code.google.com/p/arm-webradio/source/browse/#svn/trunk/src/lcd

Gruß
Andreas

the-fallen

#14
Dec 15, 2009, 06:39 pm Last Edit: Dec 15, 2009, 07:05 pm by the-fallen Reason: 1
Danke für den Tipp.

Was ist denn mit der "Standart"-Schrift? Kann man die nicht ersetzen anstatt eine zweite hinzu zu fügen (wegen dem Speicher)? Oder ist die irgendwo fest einprogrammiert ( im Controller des Displays? )


Edit:
ich habe die Schrift ersetzt (und die paar wenigen Modifikationen durchgeführt die nötig sind) und die in die S65Display.cpp eingetragen anstatt der 8x12.
Das Programm wird auch kompiliert und gestartet, allerdings ist die Schrift zerhackt. Sieht so aus als wenn erst die Untere Hälfte des Zeichens und dann die obere Hälfte angezeigt. Ausserdem macht es immernoch den Eindruck einer 8x12 Schroft (von der Grösse her)

Go Up