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
#481340
>Demendsprechend brauche ich wohl noch eine Liste in der die Offsets >stehen, oder? Entweder eine Tabelle, oder eine Berechnung, wenn die Ziffern alle die gleiche "Breite" haben.
Gast
#481374
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
ahhhh,
// char widths
0x05, 0x03, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05,
Auf obiges Bitmuster bezogen; Pos = Char widths * 2 = Anzahl der
Bitmuster.
Ist für ein ein OLED, SSD1303...
Merci,
Jochen
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.