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


von Roman (Gast)


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:
-------
1
#include <inttypes.h>
2
#include <avr/pgmspace.h>
3
4
#ifndef BIG_FONT_H
5
#define BIG_FONT_H
6
7
#define BIG_FONT_WIDTH 10
8
#define BIG_FONT_HEIGHT 14
9
10
11
static uint8_t big_font[] PROGMEM = {
12
    0x22, 0x08,   // size
13
    0x0A,     // width
14
    0x0E,     // height
15
    0x20,     // first char
16
    0x60,     // char count
17
    
18
    // char widths
19
20
    0x04, 0x02, 0x05, 0x06, 0x07, 0x08, 0x09, 0x02, 0x03, 0x03, 
21
    0x05, 0x08, 0x02, 0x04, 0x02, 0x04, 0x07, 0x04, 0x07, 0x07, 
22
    0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x02, 0x02, 0x07, 0x07, 
23
    0x07, 0x08, 0x0E, 0x09, 0x08, 0x08, 0x08, 0x07, 0x07, 0x09, 
24
    0x08, 0x02, 0x07, 0x08, 0x07, 0x0B, 0x08, 0x09, 0x07, 0x09, 
25
    0x09, 0x07, 0x08, 0x08, 0x09, 0x0D, 0x07, 0x08, 0x08, 0x04, 
26
    0x04, 0x04, 0x06, 0x08, 0x03, 0x07, 0x07, 0x06, 0x07, 0x07, 
27
    0x05, 0x07, 0x07, 0x02, 0x03, 0x06, 0x02, 0x0A, 0x07, 0x07, 
28
    0x07, 0x07, 0x05, 0x06, 0x05, 0x07, 0x07, 0x0B, 0x06, 0x07, 
29
    0x05, 0x05, 0x01, 0x05, 0x07, 0x08, 
30
    
31
    // font data
32
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ( )32
33
    0xFE, 0xFE, 0x18, 0x18, // (!)33
34
    0x1E, 0x1E, 0x00, 0x1E, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, // (")34
35
36
    .....
37
38
};
39
40
#endif

von Jan M. (mueschel)


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.

von Matthias (Gast)


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.

von Jan M. (mueschel)


Lesenswert?

Die Latency meines Gedaechtnises war auch schon mal besser: Hagen 
Reddmann war's.

von Karl H. (kbuchegg)


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.

von Roman (Gast)


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ß

von Oliver (Gast)


Lesenswert?

Zu APE's glcd-lib gibt es den passenden FontCreator

http://www.mikrocontroller.net/attachment/22095/GLCDFontCreator2.zip


In den damit erzeugte Fontdateien findet sich auch die 
Formatbeschreibung.
1
/*
2
 * The font data are defined as
3
 *
4
 * struct _FONT_ {
5
 *     uint16_t   font_Size_in_Bytes_over_all_included_Size_it_self;
6
 *     uint8_t    font_Width_in_Pixel_for_fixed_drawing;
7
 *     uint8_t    font_Height_in_Pixel_for_all_characters;
8
 *     unit8_t    font_First_Char;
9
 *     uint8_t    font_Char_Count;
10
 *
11
 *     uint8_t    font_Char_Widths[font_Last_Char - font_First_Char +1];
12
 *                  // for each character the separate width in pixels,
13
 *                  // characters < 128 have an implicit virtual right empty row
14
 *
15
 *     uint8_t    font_data[];
16
 *                  // bit field of all characters
17
*/

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

Oliver

von Roman (Gast)


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

von Roman (Gast)


Lesenswert?

Weiß keiner wie man das programm startet?

Gruß

von Stefan E. (sternst)


Lesenswert?

start.bat starten

von Manni (Gast)


Lesenswert?

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

von Jens (Gast)


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 )"

von Roman (Gast)


Lesenswert?

Ich danke euch für die Hilfe.

Werde jede einzelne Hilfestellung durchgehen.

Besonders die mit dem JavaRuntime.

Grüße aus NRW
Roman

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.