Fontmap und Assembler

OP (Firma: freier [VENTUZ] Operator) #481327
Lesenswert?

Hallo,
ich hab mal eine Frage bezüglich Fontmaps und Assembler. Mit dem 
FontCreator von Maximilian Thiele kann man sich ja schön die einzelnen 
Zeichen als Bitmuster generieren:

static uint8_t new_Font[] PROGMEM = {
 ...
...
    // font data
    0xFE, 0x01, 0x01, 0x01, 0xFE, 0x00, 0x80, 0x80, 0x80, 0x00, // 48
    0x04, 0x02, 0xFF, 0x00, 0x00, 0x80, // 49
    0x02, 0x81, 0x41, 0x31, 0x0E, 0x80, 0x80, 0x80, 0x80, 0x80, // 50
    0x82, 0x01, 0x11, 0x11, 0xEE, 0x00, 0x80, 0x80, 0x80, 0x00, // 51
    0x60, 0x58, 0x46, 0xFF, 0x40, 0x00, 0x00, 0x00, 0x80, 0x00, // 52
    0x9C, 0x0B, 0x09, 0x09, 0xF1, 0x00, 0x80, 0x80, 0x80, 0x00, // 53
    0xFE, 0x11, 0x09, 0x09, 0xF2, 0x00, 0x80, 0x80, 0x80, 0x00, // 54
    0x01, 0xC1, 0x39, 0x05, 0x03, 0x00, 0x80, 0x00, 0x00, 0x00, // 55
    0xEE, 0x11, 0x11, 0x11, 0xEE, 0x00, 0x80, 0x80, 0x80, 0x00 // 56
....
Um auf die einzelnen Zeichen zuzugreifen brauche ich aber doch einen 
Offset zur Speicheradresse, z.B. für "1":
static uint8_t new_Font +9; um auf die zweite Zeile zuzugreifen.
Demendsprechend brauche ich wohl noch eine Liste in der die Offsets 
stehen, oder?

Hat man z.B. die Zahl 1200 - 0b0000 0100 1011 0000, konvertiere ich die 
einzelnen Stellen.
Ziffer 1 = Liste_Offsets zweite Position
Ziffer 2 = Liste_Offsets dritte Position
Ziffer 0 = Liste_Offset erste Position
Ziffer 0 = Liste_Offset erste Position

Wie macht ihr das?
Gast #481374
Lesenswert?

Deshalb gibt es in den erzeugten Daten ja auch noch den Bereich
// char widths

Wie sich daraus der Offset auf ein Zeichen berechnet, entnimmst du am 
besten der dazugehörigen ks108-library.

Oliver

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren