www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Font editor Grafik display


Autor: Juppo Nini (juppo)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Hans (Gast)
Datum:

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

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

Bewertung
0 lesenswert
nicht 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.

Autor: Juppo Nini (juppo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
also ab

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

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

Bewertung
0 lesenswert
nicht 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.

Autor: Reinhard Kern (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Juppo Nini (juppo)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Reinhard Kern (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Hagen Re (hagen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

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.