From 0bc6f6b96e4a327c914dddff51201139cd5f6141 Mon Sep 17 00:00:00 2001 From: Sylaina Date: Sun, 16 Sep 2018 08:51:18 +0200 Subject: [PATCH] Create font.c --- font.c | 160 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 160 insertions(+) create mode 100644 font.c diff --git a/font.c b/font.c new file mode 100644 index 0000000..171f5cf --- /dev/null +++ b/font.c @@ -0,0 +1,160 @@ +/* + * font.c + * + * + * Created by Michael Köhler on 13.09.18. + * Copyright 2018 Skie-Systems. All rights reserved. + * + */ +#include "font.h" + +const char ssd1306oled_font[][6] PROGMEM = { +{0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // sp +{0x00, 0x00, 0x00, 0x2f, 0x00, 0x00}, // ! +{0x00, 0x00, 0x07, 0x00, 0x07, 0x00}, // " +{0x00, 0x14, 0x7f, 0x14, 0x7f, 0x14}, // # +{0x00, 0x24, 0x2a, 0x7f, 0x2a, 0x12}, // $ +{0x00, 0x62, 0x64, 0x08, 0x13, 0x23}, // % +{0x00, 0x36, 0x49, 0x55, 0x22, 0x50}, // & +{0x00, 0x00, 0x05, 0x03, 0x00, 0x00}, // ' +{0x00, 0x00, 0x1c, 0x22, 0x41, 0x00}, // ( +{0x00, 0x00, 0x41, 0x22, 0x1c, 0x00}, // ) +{0x00, 0x14, 0x08, 0x3E, 0x08, 0x14}, // * +{0x00, 0x08, 0x08, 0x3E, 0x08, 0x08}, // + +{0x00, 0x00, 0x00, 0xA0, 0x60, 0x00}, // , +{0x00, 0x08, 0x08, 0x08, 0x08, 0x08}, // - +{0x00, 0x00, 0x60, 0x60, 0x00, 0x00}, // . +{0x00, 0x20, 0x10, 0x08, 0x04, 0x02}, // / +{0x00, 0x3E, 0x51, 0x49, 0x45, 0x3E}, // 0 +{0x00, 0x00, 0x42, 0x7F, 0x40, 0x00}, // 1 +{0x00, 0x42, 0x61, 0x51, 0x49, 0x46}, // 2 +{0x00, 0x21, 0x41, 0x45, 0x4B, 0x31}, // 3 +{0x00, 0x18, 0x14, 0x12, 0x7F, 0x10}, // 4 +{0x00, 0x27, 0x45, 0x45, 0x45, 0x39}, // 5 +{0x00, 0x3C, 0x4A, 0x49, 0x49, 0x30}, // 6 +{0x00, 0x01, 0x71, 0x09, 0x05, 0x03}, // 7 +{0x00, 0x36, 0x49, 0x49, 0x49, 0x36}, // 8 +{0x00, 0x06, 0x49, 0x49, 0x29, 0x1E}, // 9 +{0x00, 0x00, 0x36, 0x36, 0x00, 0x00}, // : +{0x00, 0x00, 0x56, 0x36, 0x00, 0x00}, // ; +{0x00, 0x08, 0x14, 0x22, 0x41, 0x00}, // < +{0x00, 0x14, 0x14, 0x14, 0x14, 0x14}, // = +{0x00, 0x00, 0x41, 0x22, 0x14, 0x08}, // > +{0x00, 0x02, 0x01, 0x51, 0x09, 0x06}, // ? +{0x00, 0x32, 0x49, 0x59, 0x51, 0x3E}, // @ +{0x00, 0x7C, 0x12, 0x11, 0x12, 0x7C}, // A +{0x00, 0x7F, 0x49, 0x49, 0x49, 0x36}, // B +{0x00, 0x3E, 0x41, 0x41, 0x41, 0x22}, // C +{0x00, 0x7F, 0x41, 0x41, 0x22, 0x1C}, // D +{0x00, 0x7F, 0x49, 0x49, 0x49, 0x41}, // E +{0x00, 0x7F, 0x09, 0x09, 0x09, 0x01}, // F +{0x00, 0x3E, 0x41, 0x49, 0x49, 0x7A}, // G +{0x00, 0x7F, 0x08, 0x08, 0x08, 0x7F}, // H +{0x00, 0x00, 0x41, 0x7F, 0x41, 0x00}, // I +{0x00, 0x20, 0x40, 0x41, 0x3F, 0x01}, // J +{0x00, 0x7F, 0x08, 0x14, 0x22, 0x41}, // K +{0x00, 0x7F, 0x40, 0x40, 0x40, 0x40}, // L +{0x00, 0x7F, 0x02, 0x0C, 0x02, 0x7F}, // M +{0x00, 0x7F, 0x04, 0x08, 0x10, 0x7F}, // N +{0x00, 0x3E, 0x41, 0x41, 0x41, 0x3E}, // O +{0x00, 0x7F, 0x09, 0x09, 0x09, 0x06}, // P +{0x00, 0x3E, 0x41, 0x51, 0x21, 0x5E}, // Q +{0x00, 0x7F, 0x09, 0x19, 0x29, 0x46}, // R +{0x00, 0x46, 0x49, 0x49, 0x49, 0x31}, // S +{0x00, 0x01, 0x01, 0x7F, 0x01, 0x01}, // T +{0x00, 0x3F, 0x40, 0x40, 0x40, 0x3F}, // U +{0x00, 0x1F, 0x20, 0x40, 0x20, 0x1F}, // V +{0x00, 0x3F, 0x40, 0x38, 0x40, 0x3F}, // W +{0x00, 0x63, 0x14, 0x08, 0x14, 0x63}, // X +{0x00, 0x07, 0x08, 0x70, 0x08, 0x07}, // Y +{0x00, 0x61, 0x51, 0x49, 0x45, 0x43}, // Z +{0x00, 0x00, 0x7F, 0x41, 0x41, 0x00}, // [ +{0x00, 0x55, 0x2A, 0x55, 0x2A, 0x55}, // backslash +{0x00, 0x00, 0x41, 0x41, 0x7F, 0x00}, // ] +{0x00, 0x04, 0x02, 0x01, 0x02, 0x04}, // ^ +{0x00, 0x40, 0x40, 0x40, 0x40, 0x40}, // _ +{0x00, 0x00, 0x01, 0x02, 0x04, 0x00}, // ' +{0x00, 0x20, 0x54, 0x54, 0x54, 0x78}, // a +{0x00, 0x7F, 0x48, 0x44, 0x44, 0x38}, // b +{0x00, 0x38, 0x44, 0x44, 0x44, 0x20}, // c +{0x00, 0x38, 0x44, 0x44, 0x48, 0x7F}, // d +{0x00, 0x38, 0x54, 0x54, 0x54, 0x18}, // e +{0x00, 0x08, 0x7E, 0x09, 0x01, 0x02}, // f +{0x00, 0x18, 0xA4, 0xA4, 0xA4, 0x7C}, // g +{0x00, 0x7F, 0x08, 0x04, 0x04, 0x78}, // h +{0x00, 0x00, 0x44, 0x7D, 0x40, 0x00}, // i +{0x00, 0x40, 0x80, 0x84, 0x7D, 0x00}, // j +{0x00, 0x7F, 0x10, 0x28, 0x44, 0x00}, // k +{0x00, 0x00, 0x41, 0x7F, 0x40, 0x00}, // l +{0x00, 0x7C, 0x04, 0x18, 0x04, 0x78}, // m +{0x00, 0x7C, 0x08, 0x04, 0x04, 0x78}, // n +{0x00, 0x38, 0x44, 0x44, 0x44, 0x38}, // o +{0x00, 0xFC, 0x24, 0x24, 0x24, 0x18}, // p +{0x00, 0x18, 0x24, 0x24, 0x18, 0xFC}, // q +{0x00, 0x7C, 0x08, 0x04, 0x04, 0x08}, // r +{0x00, 0x48, 0x54, 0x54, 0x54, 0x20}, // s +{0x00, 0x04, 0x3F, 0x44, 0x40, 0x20}, // t +{0x00, 0x3C, 0x40, 0x40, 0x20, 0x7C}, // u +{0x00, 0x1C, 0x20, 0x40, 0x20, 0x1C}, // v +{0x00, 0x3C, 0x40, 0x30, 0x40, 0x3C}, // w +{0x00, 0x44, 0x28, 0x10, 0x28, 0x44}, // x +{0x00, 0x1C, 0xA0, 0xA0, 0xA0, 0x7C}, // y +{0x00, 0x44, 0x64, 0x54, 0x4C, 0x44}, // z +{0x00, 0x00, 0x08, 0x77, 0x41, 0x00}, // { +{0x00, 0x00, 0x00, 0x63, 0x00, 0x00}, // ¦ +{0x00, 0x00, 0x41, 0x77, 0x08, 0x00}, // } +{0x00, 0x08, 0x04, 0x08, 0x08, 0x04}, // ~ +/* put your own signs/chars here, edit getCharCode() too */ +{0x00, 0x3A, 0x40, 0x40, 0x20, 0x7A}, // ü +{0x00, 0x3D, 0x40, 0x40, 0x40, 0x3D}, // Ü +{0x00, 0x21, 0x54, 0x54, 0x54, 0x79}, // ä +{0x00, 0x7D, 0x12, 0x11, 0x12, 0x7D}, // Ä +{0x00, 0x39, 0x44, 0x44, 0x44, 0x39}, // ö +{0x00, 0x3D, 0x42, 0x42, 0x42, 0x3D}, // Ö +{0x00, 0x02, 0x05, 0x02, 0x00, 0x00}, // ° +{0x00, 0x7E, 0x01, 0x49, 0x55, 0x73}, // ß +{0x00, 0x7C, 0x20, 0x20, 0x10, 0x1C}, // µ +}; + +uint8_t getCharPosition(char value){ + // getting chars position at font-array + switch (value) { + case 'ü': + value = 95; // ü + break; + case 'Ü': + value = 96; // Ü + break; + case 'ä': + value = 97; // ä + break; + case 'Ä': + value = 98; // Ä + break; + case 'ö': + value = 99; // ö + break; + case 'Ö': + value = 100; // Ö + break; + case '°': + value = 101; // ° + break; + case 'ß': + value = 102; // ß + break; + case 'µ': + value = 103; // µ + break; + default: + value -= 32; + if( value > 127-32 ) { + return 0xff; + } + break; + } + // return char-position at font-array + return value; +} + +#endif