Größere Schrift auf S65 Shield

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

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

Aus:

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 :slight_smile:

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

Vielen Dank nochmal an dieser Stelle ! :slight_smile:

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

Gruß
Andreas

Jep, läuft :slight_smile:

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?

Hi,

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

Gruß
Andreas

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.

Hallo.

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

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)

Man kann auch die Standardschrift ersetzen. Die Zeichendaten liegen in der font_8x12.c und die Größe der Schrift in font_8x12.h.

Ich werde es in die Lib so einbauen, dass man gegebenfalls nur eine Schriftart hat.

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. Ausserdem macht es immer noch den Eindruck einer 8x12 Schrift (von der Grösse her).

Für den Fall dass du die neue lib sowieso demnächst veröffentlichst dann brauchst du dir jetzt gar nicht so viele Gedanken um mein Problem machen da ich noch ein paar Tage auf die kleinere Schrift verzichten kann, ist also nicht so dringend.

Hallo,

Ich habe die neue Lib jetzt hochgeladen:
http://www.watterott.net/projects/s65-shield

Gruß
Andreas

Großartig, Danke!

Funktioniert und sieht gut aus. Spart schon eine Menge Platz auf dem Display und auch einiges an der Binärdatei.

Womit erstellst du die Fonts?
Ich würde mich gerne selber daran versuchen eine Monotype Schrift zu bauen die möglichst noch kleiner ist (obwohl mir für mein Projekt die mitgelieferte 8x8 voll reicht).

von mir auch vielen Dank dafür ! :slight_smile:

kurze Anmerkung noch: Die Beispiele lassen sich aktuell nicht kompilieren, da der Int für die Schriftgröße dort noch fehlt.
Auch die fillCircle haut noch nicht so richtig hin. Wenn X=Y dann passts noch einigermaßen, sobald das ausseinander geht, ist der Kreis zerstückelt.

Womit erstellst du die Fonts?

Die Fonts sind von hier: LCD Schriftarten ( Fonts in veschiedenen Größen ) - Mikrocontroller.net
und ein bisschen per Hand angepasst.
Ich bin auch noch auf der Suche nach einem guten Fonteditor.

Die Beispiele lassen sich aktuell nicht kompilieren, da der Int für die Schriftgröße dort noch fehlt.

Die Beispiele habe ich eigentlich alle angepasst, seit es die Option gibt.
Hast du das vorhandene Verzeichnis mit den neuen Beispielen überschrieben?

ups, hast recht, mein Fehler.. ::slight_smile:

Andreas, in deiner mitgelieferten font_8x8.c steht

#include "font_8x12.h"

obwohl eine entsprechende 8x8 header mitgeliefert wird.
Ist das beabsichtigt?

Oh, das ist nicht richtig, aber nicht schlimm. Ich habe es jetzt geändert.

Gruß
Andreas

hier nochmal ein Pic von meinem Problem mit dem fillCircle.

Solange die Koordinaten X & Y gleich sind funktioniert es.
(Siehe Bild an Pos. 20,20 und 70,70.)
Bei abweichungen davon (z.b. 70, 100) landet ein Teil das Kreises woanders. Anscheinend ist irgendwo X & Y vertauscht, da Teile bei 100, 70 landen statt bei 70, 100?

hier mal ein Pic:

Ist in der neuen v0.11 behoben.

Gruß
Andreas