mikrocontroller.net

Forum: Compiler & IDEs Font für Ape´s glcd bibliothek


Autor: Roman (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guten Abend.

Ich bin auf der Suche nach div. Schriftarten für mein grafisches 
Display.
Leider habe ich keine Software, die mir die Windows-Schriftart nach dem
nötigen Muster generiert (Muster - siehe unten!)
Ich habe versucht z.B. eine 0 (Null) "manuell" zu erstellen. 
Erfolgslos...

Kann mir vielleicht jemand helfen ?

Mit freundlichen Grüßen

Roman


Anlage:
-------
#include <inttypes.h>
#include <avr/pgmspace.h>

#ifndef BIG_FONT_H
#define BIG_FONT_H

#define BIG_FONT_WIDTH 10
#define BIG_FONT_HEIGHT 14


static uint8_t big_font[] PROGMEM = {
    0x22, 0x08,   // size
    0x0A,     // width
    0x0E,     // height
    0x20,     // first char
    0x60,     // char count
    
    // char widths

    0x04, 0x02, 0x05, 0x06, 0x07, 0x08, 0x09, 0x02, 0x03, 0x03, 
    0x05, 0x08, 0x02, 0x04, 0x02, 0x04, 0x07, 0x04, 0x07, 0x07, 
    0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x02, 0x02, 0x07, 0x07, 
    0x07, 0x08, 0x0E, 0x09, 0x08, 0x08, 0x08, 0x07, 0x07, 0x09, 
    0x08, 0x02, 0x07, 0x08, 0x07, 0x0B, 0x08, 0x09, 0x07, 0x09, 
    0x09, 0x07, 0x08, 0x08, 0x09, 0x0D, 0x07, 0x08, 0x08, 0x04, 
    0x04, 0x04, 0x06, 0x08, 0x03, 0x07, 0x07, 0x06, 0x07, 0x07, 
    0x05, 0x07, 0x07, 0x02, 0x03, 0x06, 0x02, 0x0A, 0x07, 0x07, 
    0x07, 0x07, 0x05, 0x06, 0x05, 0x07, 0x07, 0x0B, 0x06, 0x07, 
    0x05, 0x05, 0x01, 0x05, 0x07, 0x08, 
    
    // font data
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ( )32
    0xFE, 0xFE, 0x18, 0x18, // (!)33
    0x1E, 0x1E, 0x00, 0x1E, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, // (")34

    .....

};

#endif

Autor: Jan M. (mueschel)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Programm findest du hier im Forum.
Haette da nicht jemand den Hinweis auf den Autor entfernt, wuerde auch 
noch drinstehen, wie du die Datei hier im Forum finden kannst.

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
BitFontCratorPro (www.iseasoft.com). Kostete ca. 60-70 Euro. Wenn Du 
deren
Datenarrays in deine Applikation reifrickelst, dann kann dir das ne 
Menge Arbeit ersparen. Allerdings muss man auch nach dem konvertieren 
von einer Windowsschriftart immernoch ein wenig Hand anlegen und 
"optimieren".

Aber mir hat die SW schon relativ gut geholfen.

Autor: Jan M. (mueschel)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Latency meines Gedaechtnises war auch schon mal besser: Hagen 
Reddmann war's.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Roman schrieb:
> Guten Abend.
>
> Ich bin auf der Suche nach div. Schriftarten für mein grafisches
> Display.
> Leider habe ich keine Software, die mir die Windows-Schriftart nach dem
> nötigen Muster generiert (Muster - siehe unten!)
> Ich habe versucht z.B. eine 0 (Null) "manuell" zu erstellen.
> Erfolgslos...

Das wundert mich nicht, bei dem Chaos den du da im big_font Array 
veranstaltet hast.
Am einfachsten ist es, wenn jeder Character in deinem Font Array immer 
aus gleich vielen Bytes besteht. In deinem Font Array ist jedoch die 
Byteanzahl für jeden Character unterschiedlich, ohne dass irgendein 
System erkennbar wäre. Und mit dem Abschnitt der mit dem Kommentar "char 
widths" versehen ist, stimmt das auch nicht zusammen (dort hätte ich 
eigentlich vermutet, dass für jeden Character verzeichnet ist, wieviele 
Bytes im Fontarray zu ihm gehören)

Du solltest erst mal deine Zeichenausgaberoutine studieren, wie die das 
Fontarray auswertet, wie sie vom ASCII Code zu den Bytes kommt, die aufs 
Display geschrieben werden. Ehe du das nämlich nicht verstehst, hat es 
so gut wie gar keinen Sinn, nach einem Font zu fragen. Du hast dann zwar 
den Font, kannst ihn aber nicht einbauen.

Autor: Roman (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank für Eure Antworten!

Hallo Herr Buchegger,

Zitat:
Am einfachsten ist es, wenn jeder Character in deinem Font Array immer
aus gleich vielen Bytes besteht

Da haben Sie völlig Recht. Das hatte ich auch vor.Denn zur Zeit besteht 
noch das problem, daß das Überschreiben von einzelnen zeichen nicht 
richtig funktioniert. Es findet eine Überlappung der Zeichen statt.
Schreibe ich an Stelle z.B. einer 0 eine 1 so ist die Null noch 
teilweise zu sehen.

Ansonsten klappt es mit dem Code ganz gut.

Was ich noch fragen wollte:
Weiß Jemand nach welchen System so ein Zeichen aufgebaut wird?
z.B.
0xFE, 0xFE, 0x18, 0x18, // (!)33

Wird das Zeichen punktmäßg von oben-link nach unten-rechts geschrieben?

Wie kann ich mir das vorstellen?

Vielen Dank für alle!

Gruß

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zu APE's glcd-lib gibt es den passenden FontCreator

http://www.mikrocontroller.net/attachment/22095/GL...


In den damit erzeugte Fontdateien findet sich auch die 
Formatbeschreibung.
/*
 * The font data are defined as
 *
 * struct _FONT_ {
 *     uint16_t   font_Size_in_Bytes_over_all_included_Size_it_self;
 *     uint8_t    font_Width_in_Pixel_for_fixed_drawing;
 *     uint8_t    font_Height_in_Pixel_for_all_characters;
 *     unit8_t    font_First_Char;
 *     uint8_t    font_Char_Count;
 *
 *     uint8_t    font_Char_Widths[font_Last_Char - font_First_Char +1];
 *                  // for each character the separate width in pixels,
 *                  // characters < 128 have an implicit virtual right empty row
 *
 *     uint8_t    font_data[];
 *                  // bit field of all characters
*/

Wenn der Font höher als 8 Bit ist, sind die Bits im untersten Byte 
rechtsbündig angeordnet.

Oliver

Autor: Roman (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke Oliver.

Habe mir die Software heruntergeladen.

jetzt bitte nicht lachen...
Aber wie kann ich das Programm starten ?????

Ich kann mit den Dateien leider nichts anfangen.
Kann mir vielleicht jemand erklären wie ich das programm zum laufen 
bringe?

Danke im voraus.

Gruß
Roman

Autor: Roman (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Weiß keiner wie man das programm startet?

Gruß

Autor: Stefan Ernst (sternst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
start.bat starten

Autor: Manni (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du mußt auch eine Java Runtime (JRE) installiert haben. Gibt es bei 
sun.com

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielleicht hilft dir das weiter. Ich finde die Fonts sehr nützlich und 
habe sie ohne größere Probleme auf einem GLCD zum spielen gekriegt.

Beitrag "LCD Schriftarten ( Fonts in veschiedenen Größen )"

Autor: Roman (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich danke euch für die Hilfe.

Werde jede einzelne Hilfestellung durchgehen.

Besonders die mit dem JavaRuntime.

Grüße aus NRW
Roman

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.