Új hozzászólás Aktív témák

  • fpeter84

    senior tag

    Sziasztok!

    Egy 128x32-es SSD1306 OLED kijelzőt szeretnék meghajtani - és nem pl az Adafruit vagy U8glib-el, mert ezek rettentően sok programterületet igényelnek, én meg szeretném egy 4KB-os 8 lábú mikrokontrollerrel megoldani a feladatot... Rátaláltam a tinyOLED lib-re amivel reálisnak tűnik az elképzelés, viszont valami érthetetlen számomra: a fontok programterületre beírása és visszaolvasása! szeretnék definiálni egy custom celsiusfok szimbólumot - nyilván a kis "c" betűből próbálnék kiindulni, de akár a 6x8, akár a 8x16 fontkészletet nézem, értelmezhetetlen számomra hogy miért úgy épülnek fel ahogy:
    0x00, 0x38, 0x44, 0x44, 0x44, 0x20, // c 6x8

    0x00 ........
    0x38 ..111...
    0x44 .1...1..
    0x44 .1...1..
    0x44 .1...1..
    0x20 ..1.....

    0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x0E, 0x11, 0x20, 0x20, 0x20, 0x11, 0x00, // c 8x16

    0x00 ........
    0x00 ........
    0x00 ........
    0x80 1.......
    0x80 1.......
    0x80 1.......
    0x00 ........
    0x00 ........
    0x00 ........
    0x0E ....111.
    0x11 ...1...1
    0x20 ..1.....
    0x20 ..1.....
    0x20 ..1.....
    0x11 ...1...1
    0x00 ........

    A 6x8-nál már magát a formát se tudom teljesen értelmezni - ebből hogy lesz egy szépen megjelenő egészséges kis "c"? de a 8x16-os is hasonlóan zavaros - belelátom a szép "c" formát, kivéve hogy a karima alsó íve nem a helyén van hanem függőlegesen elfordítva felette... de miért? most a 8x16 lenne a cél, ha az működik már elégedett lennék teljesen... nézegetem a kiirató programkód részletet - tinyOLED.cpp 230-dik sorától és nem látom hogy ott a byte-ok sorban kiküldésében lenne valami elforgatási trükk: az SSD1306 felépítése miatt két 8 pixeles oszlop formájában kell kiszórni a 16 pixeles oszlopokat - ezt látom is, mindkettőnél egy for ciklus elszámol 0-tól 7-ig, és a ci * 16 + i valamint ci * 16 + i + 8 lefelé eltolt területet kiiratja
    megnéztem a nagy "C" párját is, az még annyira sem értelmezhető számomra hogy hogyan épül fel...
    0xC0,0x30,0x08,0x08,0x08,0x08,0x38,0x00,0x07,0x18,0x20,0x20,0x20,0x10,0x08,0x00, // C 8x16

    0xC0 11......
    0x30 ..11....
    0x08 ....1...
    0x08 ....1...
    0x08 ....1...
    0x08 ....1...
    0x38 ..111...
    0x00 ........
    0x07 .....111
    0x18 ...11...
    0x20 ..1.....
    0x20 ..1.....
    0x20 ..1.....
    0x10 ...1....
    0x08 ....1...
    0x00 ........
    Valaki fel tudna homályosítani hogy ezek a dolgok hogyan is működnek? :)

Új hozzászólás Aktív témák

Hirdetés