Forum: Mikrocontroller und Digitale Elektronik Font editor Grafik display


von Juppo N. (juppo)


Lesenswert?

hallo


bitte helft mir mal auf die sprünge

Bit dabe ein Grafig Display zu programmieren

128 x 64 Pixel
8 Page
Vertikale anordnung

Wenn ich die fixed Fonts mit dem Font editor von Reddmann erstelle

habe ich zb. 16x16 Pixel Zeichen.

Bei den proportionalen fehlt mir irgendwie die breiten angabe.

Irgendwo muss das doch für jedes Zeichen stehen

Aber wo??

code:

/*
    created with FontEditor written by H. Reddmann   HaReddmann at 
t-online dot de
    using template file by J. Michel     jan at mueschelsoft.de

    File Name           : font_proportional_16px.c
    Date                : 05.09.2010
    Font size in bytes  : 0x0700, 1792
    Font width          : 11
    Font height         : 16
    Font first char     : 0x20
    Font last char      : 0xFC
    Font bits per pixel : 1
*/

#include "../font.h"
#ifdef FONTS_INCLUDE_font_proportional_16px



const char font_proportional_16px_data[] PROGMEM = {
    0x04, 0x02, 0x05, 0x08, 0x07, 0x09, 0x07, 0x02, 0x04, 0x04, 0x06, 
0x07, 0x03, 0x05, 0x02, 0x07,
    0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x02, 
0x03, 0x05, 0x08, 0x05, 0x06,
    0x09, 0x08, 0x07, 0x07, 0x07, 0x06, 0x06, 0x07, 0x07, 0x04, 0x05, 
0x07, 0x06, 0x08, 0x07, 0x07,
    0x07, 0x07, 0x07, 0x07, 0x06, 0x07, 0x08, 0x0A, 0x08, 0x08, 0x06, 
0x04, 0x05, 0x04, 0x08, 0x08,
    0x03, 0x06, 0x06, 0x05, 0x06, 0x06, 0x05, 0x06, 0x06, 0x02, 0x03, 
0x06, 0x02, 0x08, 0x06, 0x06,
    0x06, 0x06, 0x05, 0x06, 0x05, 0x06, 0x07, 0x08, 0x06, 0x07, 0x06, 
0x06, 0x02, 0x06, 0x07, 0x00,
    0x07, 0x00, 0x03, 0x00, 0x06, 0x08, 0x07, 0x07, 0x06, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x03, 0x03, 0x06, 0x06, 0x07, 0x08, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x08, 0x00, 0x00, 0x00, 0x00,
    0x06, 0x09, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 
0x08, 0x0A, 0x0A, 0x0A, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x00, 0x00, 0x00, 
0x00, 0x07, 0x00, 0x00, 0x07,
    0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, 
0x00, 0x07,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x0D, 0xF8, 
0x0D, 0x3C, 0x00, 0x3C, 0x00,
    0x00, 0x00, 0x3C, 0x00, 0x3C, 0x00, 0x00, 0x03, 0x60, 0x0F, 0xE0, 
0x03, 0x78, 0x03, 0x60, 0x0F,
    0xE0, 0x03, 0x78, 0x03, 0x60, 0x00, 0x70, 0x04, 0xF8, 0x08, 0x88, 
0x08, 0xFC, 0x1F, 0x88, 0x08,
    0x88, 0x0F, 0x10, 0x07, 0xF8, 0x00, 0x88, 0x00, 0xF8, 0x0C, 0x00, 
0x03, 0x80, 0x00, 0x60, 0x00,
    0x98, 0x0F, 0x80, 0x08, 0x80, 0x0F, 0x70, 0x07, 0xF8, 0x0F, 0x88, 
0x08, 0xF8, 0x09, 0x70, 0x07,
    0x00, 0x0E, 0x00, 0x0B, 0x3C, 0x00, 0x3C, 0x00, 0xE0, 0x0F, 0xF8, 
0x3F, 0x1C, 0x70, 0x04, 0x40,
    0x04, 0x40, 0x1C, 0x70, 0xF8, 0x3F, 0xE0, 0x0F, 0x28, 0x00, 0x10, 
0x00, 0x7C, 0x00, 0x7C, 0x00,
    0x10, 0x00, 0x28, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0xF0, 
0x07, 0x80, 0x00, 0x80, 0x00,
    0x80, 0x00, 0x00, 0x18, 0x00, 0x1E, 0x00, 0x06, 0x80, 0x00, 0x80, 
0x00, 0x80, 0x00, 0x80, 0x00,
    0x80, 0x00, 0x00, 0x0C, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 
0x03, 0xC0, 0x00, 0x30, 0x00,
    0x0C, 0x00, 0x00, 0x00, 0xF0, 0x07, 0xF8, 0x0F, 0x08, 0x08, 0x08, 
0x08, 0xF8, 0x0F, 0xF0, 0x07,
    0x10, 0x08, 0x10, 0x08, 0xF8, 0x0F, 0xF8, 0x0F, 0x00, 0x08, 0x00, 
0x08, 0x30, 0x0C, 0x08, 0x0E,
    0x08, 0x0B, 0x88, 0x09, 0xF8, 0x08, 0x70, 0x08, 0x10, 0x04, 0x08, 
0x08, 0x88, 0x08, 0x88, 0x08,
    0xF8, 0x0F, 0x70, 0x07, 0x80, 0x01, 0x60, 0x01, 0x10, 0x01, 0xF8, 
0x0F, 0xF8, 0x0F, 0x00, 0x01,
    0x00, 0x04, 0x78, 0x08, 0x78, 0x08, 0x48, 0x08, 0xC8, 0x0F, 0x88, 
0x07, 0xE0, 0x07, 0xF0, 0x0F,
    0x58, 0x08, 0x48, 0x08, 0xC8, 0x0F, 0x80, 0x07, 0x08, 0x00, 0x08, 
0x0E, 0x88, 0x0F, 0xE8, 0x01,
    0x78, 0x00, 0x18, 0x00, 0x70, 0x07, 0xF8, 0x0F, 0x88, 0x08, 0x88, 
0x08, 0xF8, 0x0F, 0x70, 0x07,
    0xF0, 0x00, 0xF8, 0x09, 0x08, 0x09, 0x08, 0x0D, 0xF8, 0x07, 0xF0, 
0x03, 0x60, 0x0C, 0x60, 0x0C,
    0x00, 0x18, 0x30, 0x1E, 0x30, 0x06, 0x80, 0x01, 0xC0, 0x03, 0x60, 
0x06, 0x30, 0x0C, 0x18, 0x18,
    0x30, 0x03, 0x30, 0x03, 0x30, 0x03, 0x30, 0x03, 0x30, 0x03, 0x30, 
0x03, 0x30, 0x03, 0x30, 0x03,
    0x18, 0x18, 0x30, 0x0C, 0x60, 0x06, 0xC0, 0x03, 0x80, 0x01, 0x10, 
0x00, 0x08, 0x00, 0x88, 0x0D,
    0xC8, 0x0D, 0x78, 0x00, 0x30, 0x00, 0xE0, 0x07, 0x10, 0x08, 0xC8, 
0x13, 0xE8, 0x17, 0x28, 0x14,
    0xE8, 0x13, 0xE8, 0x17, 0x10, 0x14, 0xE0, 0x03, 0x00, 0x0C, 0x80, 
0x0F, 0xE0, 0x03, 0x38, 0x01,
    0x38, 0x01, 0xE0, 0x03, 0x80, 0x0F, 0x00, 0x0C, 0xF8, 0x0F, 0xF8, 
0x0F, 0x88, 0x08, 0x88, 0x08,
    0x88, 0x08, 0xF8, 0x0F, 0x70, 0x07, 0xF0, 0x07, 0xF8, 0x0F, 0x08, 
0x08, 0x08, 0x08, 0x08, 0x08,
    0x08, 0x08, 0x30, 0x06, 0xF8, 0x0F, 0xF8, 0x0F, 0x08, 0x08, 0x08, 
0x08, 0x18, 0x0C, 0xF0, 0x07,
    0xE0, 0x03, 0xF8, 0x0F, 0xF8, 0x0F, 0x88, 0x08, 0x88, 0x08, 0x88, 
0x08, 0x08, 0x08, 0xF8, 0x0F,
    0xF8, 0x0F, 0x88, 0x00, 0x88, 0x00, 0x88, 0x00, 0x08, 0x00, 0xF0, 
0x07, 0xF8, 0x0F, 0x08, 0x08,
    0x08, 0x08, 0x88, 0x08, 0x88, 0x0F, 0xB0, 0x0F, 0xF8, 0x0F, 0xF8, 
0x0F, 0x80, 0x00, 0x80, 0x00,
    0x80, 0x00, 0xF8, 0x0F, 0xF8, 0x0F, 0x08, 0x08, 0xF8, 0x0F, 0xF8, 
0x0F, 0x08, 0x08, 0x00, 0x08,
    0x08, 0x08, 0x08, 0x08, 0xF8, 0x0F, 0xF8, 0x07, 0xF8, 0x0F, 0xF8, 
0x0F, 0xC0, 0x01, 0x60, 0x03,
    0x30, 0x06, 0x18, 0x0C, 0x08, 0x08, 0xF8, 0x0F, 0xF8, 0x0F, 0x00, 
0x08, 0x00, 0x08, 0x00, 0x08,
    0x00, 0x08, 0xF8, 0x0F, 0x78, 0x00, 0xE0, 0x01, 0x80, 0x07, 0x80, 
0x01, 0x60, 0x00, 0xF8, 0x0F,
    0xF8, 0x0F, 0xF8, 0x0F, 0x18, 0x00, 0x78, 0x00, 0xE0, 0x01, 0x80, 
0x07, 0x00, 0x0E, 0xF8, 0x0F,
    0xF0, 0x07, 0xF8, 0x0F, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0xF8, 
0x0F, 0xF0, 0x07, 0xF8, 0x0F,
    0xF8, 0x0F, 0x08, 0x01, 0x08, 0x01, 0x08, 0x01, 0xF8, 0x01, 0xF0, 
0x00, 0xF0, 0x07, 0xF8, 0x0F,
    0x08, 0x08, 0x08, 0x08, 0x08, 0x18, 0xF8, 0x1F, 0xF0, 0x17, 0xF8, 
0x0F, 0xF8, 0x0F, 0x88, 0x00,
    0x88, 0x01, 0x88, 0x03, 0xF8, 0x06, 0x70, 0x0C, 0x70, 0x06, 0xF8, 
0x08, 0x88, 0x08, 0x88, 0x08,
    0x88, 0x08, 0x88, 0x0F, 0x30, 0x07, 0x08, 0x00, 0x08, 0x00, 0xF8, 
0x0F, 0xF8, 0x0F, 0x08, 0x00,
    0x08, 0x00, 0xF8, 0x07, 0xF8, 0x0F, 0x00, 0x08, 0x00, 0x08, 0x00, 
0x08, 0xF8, 0x0F, 0xF8, 0x07,
    0x38, 0x00, 0xF8, 0x00, 0xC0, 0x03, 0x00, 0x0F, 0x00, 0x0F, 0xC0, 
0x03, 0xF8, 0x00, 0x38, 0x00,
    0xF8, 0x03, 0xF8, 0x0F, 0x00, 0x0F, 0xC0, 0x03, 0xF0, 0x00, 0xF0, 
0x00, 0xC0, 0x03, 0x00, 0x0F,
    0xF8, 0x0F, 0xF8, 0x03, 0x18, 0x0C, 0x38, 0x0E, 0x60, 0x03, 0xC0, 
0x01, 0xC0, 0x01, 0x60, 0x03,
    0x38, 0x0E, 0x18, 0x0C, 0x18, 0x00, 0x78, 0x00, 0xE0, 0x00, 0x80, 
0x0F, 0x80, 0x0F, 0xE0, 0x00,
    0x78, 0x00, 0x18, 0x00, 0x08, 0x0E, 0x08, 0x0F, 0x88, 0x09, 0xC8, 
0x08, 0x78, 0x08, 0x38, 0x08,
    0xFC, 0x1F, 0xFC, 0x1F, 0x04, 0x10, 0x04, 0x10, 0x0C, 0x00, 0x30, 
0x00, 0xC0, 0x00, 0x00, 0x03,
    0x00, 0x0C, 0x04, 0x10, 0x04, 0x10, 0xFC, 0x1F, 0xFC, 0x1F, 0x40, 
0x00, 0x20, 0x00, 0x10, 0x00,
    0x08, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x00, 
0x10, 0x00, 0x10, 0x00, 0x10,
    0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x04, 
0x00, 0x0C, 0x00, 0x08, 0x00,
    0x00, 0x06, 0x40, 0x0F, 0x20, 0x09, 0x20, 0x09, 0xE0, 0x0F, 0xC0, 
0x0F, 0xFC, 0x0F, 0xFC, 0x0F,
    0x40, 0x08, 0x20, 0x08, 0xE0, 0x0F, 0xC0, 0x07, 0xC0, 0x07, 0xE0, 
0x0F, 0x20, 0x08, 0x20, 0x08,
    0x40, 0x04, 0xC0, 0x07, 0xE0, 0x0F, 0x20, 0x08, 0x20, 0x04, 0xFC, 
0x0F, 0xFC, 0x0F, 0xC0, 0x07,
    0xE0, 0x0F, 0x20, 0x09, 0x20, 0x09, 0xE0, 0x09, 0xC0, 0x05, 0x20, 
0x00, 0xF8, 0x0F, 0xFC, 0x0F,
    0x24, 0x00, 0x04, 0x00, 0xC0, 0x27, 0xE0, 0x4F, 0x20, 0x48, 0x20, 
0x44, 0xE0, 0x7F, 0xE0, 0x3F,
    0xFC, 0x0F, 0xFC, 0x0F, 0x40, 0x00, 0x20, 0x00, 0xE0, 0x0F, 0xC0, 
0x0F, 0xEC, 0x0F, 0xEC, 0x0F,
    0x20, 0x40, 0xEC, 0x7F, 0xEC, 0x3F, 0xFC, 0x0F, 0xFC, 0x0F, 0x80, 
0x03, 0xC0, 0x06, 0x60, 0x0C,
    0x20, 0x08, 0xFC, 0x0F, 0xFC, 0x0F, 0xE0, 0x0F, 0xE0, 0x0F, 0x20, 
0x00, 0xE0, 0x0F, 0xC0, 0x0F,
    0x20, 0x00, 0xE0, 0x0F, 0xC0, 0x0F, 0xE0, 0x0F, 0xE0, 0x0F, 0x40, 
0x00, 0x20, 0x00, 0xE0, 0x0F,
    0xC0, 0x0F, 0xC0, 0x07, 0xE0, 0x0F, 0x20, 0x08, 0x20, 0x08, 0xE0, 
0x0F, 0xC0, 0x07, 0xE0, 0x7F,
    0xE0, 0x7F, 0x40, 0x08, 0x20, 0x08, 0xE0, 0x0F, 0xC0, 0x07, 0xC0, 
0x07, 0xE0, 0x0F, 0x20, 0x08,
    0x20, 0x04, 0xE0, 0x7F, 0xE0, 0x7F, 0xE0, 0x0F, 0xE0, 0x0F, 0x40, 
0x00, 0x60, 0x00, 0x60, 0x00,
    0xC0, 0x04, 0xE0, 0x09, 0xA0, 0x09, 0x20, 0x0B, 0x20, 0x0F, 0x40, 
0x06, 0x20, 0x00, 0xF8, 0x07,
    0xF8, 0x0F, 0x20, 0x08, 0x20, 0x08, 0xE0, 0x07, 0xE0, 0x0F, 0x00, 
0x08, 0x00, 0x04, 0xE0, 0x0F,
    0xE0, 0x0F, 0xE0, 0x00, 0xE0, 0x03, 0x00, 0x0F, 0x00, 0x0C, 0x00, 
0x0F, 0xE0, 0x03, 0xE0, 0x00,
    0xE0, 0x00, 0xE0, 0x07, 0x00, 0x0E, 0xC0, 0x03, 0xC0, 0x03, 0x00, 
0x0E, 0xE0, 0x07, 0xE0, 0x00,
    0x60, 0x0C, 0xE0, 0x0E, 0x80, 0x03, 0x80, 0x03, 0xE0, 0x0E, 0x60, 
0x0C, 0xE0, 0x00, 0xE0, 0x03,
    0x00, 0x6F, 0x00, 0x7C, 0x00, 0x1F, 0xE0, 0x03, 0xE0, 0x00, 0x20, 
0x0C, 0x20, 0x0E, 0x20, 0x0B,
    0xA0, 0x09, 0xE0, 0x08, 0x60, 0x08, 0x80, 0x00, 0x80, 0x00, 0xF8, 
0x1F, 0x7C, 0x3F, 0x04, 0x20,
    0x04, 0x20, 0xFC, 0x3F, 0xFC, 0x3F, 0x04, 0x20, 0x04, 0x20, 0x7C, 
0x3F, 0xF8, 0x1F, 0x80, 0x00,
    0x80, 0x00, 0x80, 0x03, 0xC0, 0x00, 0xC0, 0x00, 0x80, 0x01, 0x00, 
0x03, 0x00, 0x03, 0xC0, 0x01,
    0xE0, 0x03, 0xF0, 0x07, 0x58, 0x0D, 0x48, 0x09, 0x48, 0x09, 0x48, 
0x09, 0x10, 0x04, 0x00, 0x20,
    0x00, 0x3C, 0x00, 0x1C, 0x00, 0x20, 0x00, 0x3C, 0x00, 0x1C, 0x00, 
0x20, 0x00, 0x3C, 0x00, 0x1C,
    0x00, 0x0C, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x0C, 0x00, 
0x00, 0x00, 0x0C, 0x00, 0x0C,
    0x00, 0x00, 0x10, 0x00, 0x10, 0x00, 0xFC, 0x07, 0xFC, 0x07, 0x10, 
0x00, 0x10, 0x00, 0x00, 0x00,
    0x10, 0x01, 0x10, 0x01, 0xFC, 0x07, 0xFC, 0x07, 0x10, 0x01, 0x10, 
0x01, 0x00, 0x00, 0x08, 0x00,
    0x0C, 0x00, 0x04, 0x00, 0x0C, 0x00, 0x08, 0x00, 0x1C, 0x00, 0x3C, 
0x00, 0x20, 0x00, 0x20, 0x00,
    0x3C, 0x00, 0x1C, 0x00, 0x1C, 0x00, 0x3C, 0x00, 0x20, 0x00, 0x1C, 
0x00, 0x3C, 0x00, 0x20, 0x00,
    0x20, 0x00, 0x3C, 0x00, 0x1C, 0x00, 0x20, 0x00, 0x3C, 0x00, 0x1C, 
0x00, 0x00, 0x00, 0xC0, 0x03,
    0xE0, 0x07, 0xE0, 0x07, 0xE0, 0x07, 0xE0, 0x07, 0xC0, 0x03, 0x80, 
0x00, 0x80, 0x00, 0x80, 0x00,
    0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x00, 
0x00, 0x80, 0x01, 0xC0, 0x03,
    0x60, 0x06, 0x00, 0x00, 0x80, 0x01, 0xC0, 0x03, 0x60, 0x06, 0x00, 
0x00, 0x70, 0x00, 0x88, 0x00,
    0x88, 0x00, 0x88, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 
0x08, 0x80, 0x08, 0x80, 0x08,
    0xF0, 0x0F, 0x80, 0x08, 0x80, 0x08, 0x80, 0x08, 0x00, 0x00, 0x10, 
0x01, 0x88, 0x01, 0xC8, 0x01,
    0x78, 0x01, 0x30, 0x01, 0x00, 0x00, 0x90, 0x00, 0x08, 0x01, 0x28, 
0x01, 0xF8, 0x01, 0xD0, 0x00,
    0xF0, 0x00, 0xF8, 0x01, 0x08, 0x01, 0x08, 0x01, 0xF8, 0x01, 0xF0, 
0x00, 0x00, 0x00, 0x60, 0x06,
    0xC0, 0x03, 0x80, 0x01, 0x00, 0x00, 0x60, 0x06, 0xC0, 0x03, 0x80, 
0x01, 0x10, 0x00, 0xF8, 0x09,
    0x00, 0x04, 0x00, 0x03, 0x80, 0x00, 0x60, 0x06, 0x10, 0x05, 0x88, 
0x04, 0xC0, 0x0F, 0x00, 0x04,
    0x10, 0x00, 0xF8, 0x09, 0x00, 0x04, 0x00, 0x03, 0x80, 0x00, 0x60, 
0x00, 0x90, 0x08, 0x48, 0x0C,
    0x40, 0x0A, 0x80, 0x09, 0x88, 0x00, 0xA8, 0x08, 0xD8, 0x04, 0x00, 
0x02, 0x80, 0x01, 0x60, 0x06,
    0x10, 0x05, 0x88, 0x04, 0xC0, 0x0F, 0x00, 0x04, 0x00, 0x0C, 0x86, 
0x0F, 0xE6, 0x03, 0x38, 0x01,
    0x38, 0x01, 0xE6, 0x03, 0x86, 0x0F, 0x00, 0x0C, 0xE0, 0x07, 0xF6, 
0x0F, 0x16, 0x08, 0x10, 0x08,
    0x10, 0x08, 0x16, 0x08, 0xF6, 0x0F, 0xE0, 0x07, 0x00, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x20, 0x02,
    0x40, 0x01, 0x80, 0x00, 0x40, 0x01, 0x20, 0x02, 0xF0, 0x07, 0xF6, 
0x0F, 0x06, 0x08, 0x00, 0x08,
    0x06, 0x08, 0xF6, 0x0F, 0xF0, 0x07, 0xF8, 0x0F, 0xFC, 0x0F, 0x04, 
0x00, 0x44, 0x08, 0x7C, 0x08,
    0xF8, 0x0F, 0x80, 0x07, 0x00, 0x06, 0x4C, 0x0F, 0x2C, 0x09, 0x20, 
0x09, 0x2C, 0x09, 0xEC, 0x0F,
    0xC0, 0x0F, 0xC0, 0x07, 0xEC, 0x0F, 0x2C, 0x08, 0x20, 0x08, 0x2C, 
0x08, 0xEC, 0x0F, 0xC0, 0x07,
    0xC0, 0x17, 0xE0, 0x0F, 0x20, 0x0E, 0x20, 0x09, 0xE0, 0x08, 0xE0, 
0x0F, 0xD0, 0x07, 0xE0, 0x07,
    0xEC, 0x0F, 0x0C, 0x08, 0x00, 0x08, 0x0C, 0x04, 0xEC, 0x0F, 0xE0, 
0x0F
};

const struct font_info font_proportional_16px PROGMEM = 
{0x00+(0x07<<8),0x0B,0x10,0x20,0xFC,font_proportional_16px_data,(char*)f 
ont_proportional_16px_data+0xFC-0x20+1};

#endif

von Hans (Gast)


Lesenswert?

Das liegt am 0xF8 in der 34. Zeile von oben.

von Karl H. (kbuchegg)


Lesenswert?

Juppo Nini schrieb:

> const struct font_info font_proportional_16px PROGMEM =
> {0x00+(0x07<<8),0x0B,0x10,0x20,0xFC,font_proportional_16px_data,(char*)f 
ont_proportional_16px_data+0xFC-0x20+1};


sieh dir die struct font_info genauer an.
die letzten beiden Einträge sind offenbar Pointer. Einer der beiden ist 
ein Pointer auf die Pixeldaten. Der andere wird ein Pointer auf eine 
Tabelle mit den Breitenangaben für jedes Zeichen sein.

von Juppo N. (juppo)


Lesenswert?

also ab

 0xfc-0x20+1 da fangen die breiten der einzelen zeichen an?

von Karl H. (kbuchegg)


Lesenswert?

Juppo Nini schrieb:
> also ab
>
>  0xfc-0x20+1 da fangen die breiten der einzelen zeichen an?

Ich kann mich nur wiederholen:
Schau dir die struct an!

Wenn der Originalprogrammierer nicht völlig bescheuert ist, dann hat er 
für diese Pointer halbwegs sprechende Namen benutzt.

Und nein.
Ich würde es umgekehrt erwarten.

Warum?
Weil sich diese Zahlen in der restlichen Strukturbeschriebung 
wiederfinden. 0x20 ist der ASCII Code des ersten Zeichens. 0xFC ist der 
ASCII Code des letzten Zeichens.

Die Pixeldaten für einen Proportianalfont hängen aber sicher in ihrer 
Gesamtheit nicht ausschliesslich von der Anzahl der Zeichen ab. Die 
Länge der Breitendaten aber schon.

Wenn also das Datenarray offensichtlich in 2 Teile geteilt wird

    +-------------+---------------------------------+
    |             |                                 |
    +-------------+---------------------------------+

und der Begin des 2.ten Teiles hängt ausschliesslich davon ab, wieviele 
Zeichen im Font enthalten sind, dann bedeutet das, das die Länge des 
ersten Teiles ausschliesslich von der Anzahl der Zeichen abhängt.
Damit können das nicht die Pixeldaten sein! Es können aber sehr wohl die 
Breitendaten sein. Denn für die trifft zu: Je mehr Zeichen im Font desto 
länger. Und zwar ausschliesslich von der Anzahl der Zeichen unabhängig 
davon, wie breit die einzelnenn Zeichen sind.

Aber wie gesagt: Sieh zu, dass du die struct font_info in die Finger 
kriegst. Aus den Namen der Variablen bzw. den Kommentaren die 
(hoffentlich) dabeistehen, kann man so manche Rückschlüsse ziehen.

von Reinhard Kern (Gast)


Lesenswert?

Hallo,

das sollen Pixeldaten sein? Wenn das erste Zeichen 0x20 sein soll wie 
angegeben (Space), dann müsste dort alles 0 sein. Und das letzte Zeichen 
0xFC? Dazu sind es viel zu wenig Pixeldaten (221 Zeichen).

Gruss Reinhard

von Juppo N. (juppo)


Lesenswert?

uint8_t _attribute_ ((progmem)) test_prop[] = {
    0x00, 0x21, 0x09, 0x10, 0x01, 0x00, 0x01,
    0x08, 0x04, // Tabelle breite
    0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 
0x00, 0x01, 0x00, 0x01, 0x00, // Zeichen 0
    0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00 // Zeichen 1
};


Ich hab mal ein Font mit zwei Zeichen gemacht
0=   8 x 16  //nur oberster Zeile
1 =  4 x 16  // nur zweite Zeile

Da sieht man es wunderbar.
Besten Dank.

von Reinhard Kern (Gast)


Lesenswert?

Juppo Nini schrieb:
> Da sieht man es wunderbar.

Was sieht man? Sag doch mal, was du für Buchstaben gezeichnet hast - 
sind das 2 senkrechte Striche?

Im Ursprungsposting sehe ich jetzt mehr Sinn:

die Daten fangen an mit der Breite von Space (4) und ! (2), das letzte 
Breitenbyte ist 0x07 in der verkürzten Zeile.

Danach folgen die Pixeldaten mit der jeweiligen Breite: 2 x 4 x 0x00 für 
Space, 2 x 0xF8, 0x0D für ! ...

Da man die Breiten kumulieren muss für den Zugriff, ist das keine 
triviale Indizierung.

Gruss Reinhard

von Hagen R. (hagen)


Lesenswert?


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.