Exemplo n.º 1
0
/*..........................................................................*/
void BSP_drawBitmap(uint8_t const *bitmap) {
    UINT x, y;
    /* map the EK-LM3S811 OLED pixels to the GraphicDisplay pixels... */
    for (y = 0; y < BSP_SCREEN_HEIGHT; ++y) {
        for (x = 0; x < BSP_SCREEN_WIDTH; ++x) {
            uint8_t bits = bitmap[x + (y/8U)*BSP_SCREEN_WIDTH];
            if ((bits & (1U << (y & 0x07U))) != 0U) {
                GraphicDisplay_setPixel(&l_oled, x, y, c_onColor);
            }
            else {
                GraphicDisplay_clearPixel(&l_oled, x, y);
            }
        }
    }
    GraphicDisplay_redraw(&l_oled); /* redraw the updated display */
}
Exemplo n.º 2
0
/*..........................................................................*/
void BSP_drawNString(uint8_t x, uint8_t y, char const *str) {
    static uint8_t const font5x7[95][5] = {
        { 0x00U, 0x00U, 0x00U, 0x00U, 0x00U }, /* ' ' */
        { 0x00U, 0x00U, 0x4FU, 0x00U, 0x00U }, /* ! */
        { 0x00U, 0x07U, 0x00U, 0x07U, 0x00U }, /* " */
        { 0x14U, 0x7FU, 0x14U, 0x7FU, 0x14U }, /* # */
        { 0x24U, 0x2AU, 0x7FU, 0x2AU, 0x12U }, /* $ */
        { 0x23U, 0x13U, 0x08U, 0x64U, 0x62U }, /* % */
        { 0x36U, 0x49U, 0x55U, 0x22U, 0x50U }, /* & */
        { 0x00U, 0x05U, 0x03U, 0x00U, 0x00U }, /* ' */
        { 0x00U, 0x1CU, 0x22U, 0x41U, 0x00U }, /* ( */
        { 0x00U, 0x41U, 0x22U, 0x1CU, 0x00U }, /* ) */
        { 0x14U, 0x08U, 0x3EU, 0x08U, 0x14U }, /* * */
        { 0x08U, 0x08U, 0x3EU, 0x08U, 0x08U }, /* + */
        { 0x00U, 0x50U, 0x30U, 0x00U, 0x00U }, /* , */
        { 0x08U, 0x08U, 0x08U, 0x08U, 0x08U }, /* - */
        { 0x00U, 0x60U, 0x60U, 0x00U, 0x00U }, /* . */
        { 0x20U, 0x10U, 0x08U, 0x04U, 0x02U }, /* / */
        { 0x3EU, 0x51U, 0x49U, 0x45U, 0x3EU }, /* 0 */
        { 0x00U, 0x42U, 0x7FU, 0x40U, 0x00U }, /* 1 */
        { 0x42U, 0x61U, 0x51U, 0x49U, 0x46U }, /* 2 */
        { 0x21U, 0x41U, 0x45U, 0x4BU, 0x31U }, /* 3 */
        { 0x18U, 0x14U, 0x12U, 0x7FU, 0x10U }, /* 4 */
        { 0x27U, 0x45U, 0x45U, 0x45U, 0x39U }, /* 5 */
        { 0x3CU, 0x4AU, 0x49U, 0x49U, 0x30U }, /* 6 */
        { 0x01U, 0x71U, 0x09U, 0x05U, 0x03U }, /* 7 */
        { 0x36U, 0x49U, 0x49U, 0x49U, 0x36U }, /* 8 */
        { 0x06U, 0x49U, 0x49U, 0x29U, 0x1EU }, /* 9 */
        { 0x00U, 0x36U, 0x36U, 0x00U, 0x00U }, /* : */
        { 0x00U, 0x56U, 0x36U, 0x00U, 0x00U }, /* ; */
        { 0x08U, 0x14U, 0x22U, 0x41U, 0x00U }, /* < */
        { 0x14U, 0x14U, 0x14U, 0x14U, 0x14U }, /* = */
        { 0x00U, 0x41U, 0x22U, 0x14U, 0x08U }, /* > */
        { 0x02U, 0x01U, 0x51U, 0x09U, 0x06U }, /* ? */
        { 0x32U, 0x49U, 0x79U, 0x41U, 0x3EU }, /* @ */
        { 0x7EU, 0x11U, 0x11U, 0x11U, 0x7EU }, /* A */
        { 0x7FU, 0x49U, 0x49U, 0x49U, 0x36U }, /* B */
        { 0x3EU, 0x41U, 0x41U, 0x41U, 0x22U }, /* C */
        { 0x7FU, 0x41U, 0x41U, 0x22U, 0x1CU }, /* D */
        { 0x7FU, 0x49U, 0x49U, 0x49U, 0x41U }, /* E */
        { 0x7FU, 0x09U, 0x09U, 0x09U, 0x01U }, /* F */
        { 0x3EU, 0x41U, 0x49U, 0x49U, 0x7AU }, /* G */
        { 0x7FU, 0x08U, 0x08U, 0x08U, 0x7FU }, /* H */
        { 0x00U, 0x41U, 0x7FU, 0x41U, 0x00U }, /* I */
        { 0x20U, 0x40U, 0x41U, 0x3FU, 0x01U }, /* J */
        { 0x7FU, 0x08U, 0x14U, 0x22U, 0x41U }, /* K */
        { 0x7FU, 0x40U, 0x40U, 0x40U, 0x40U }, /* L */
        { 0x7FU, 0x02U, 0x0CU, 0x02U, 0x7FU }, /* M */
        { 0x7FU, 0x04U, 0x08U, 0x10U, 0x7FU }, /* N */
        { 0x3EU, 0x41U, 0x41U, 0x41U, 0x3EU }, /* O */
        { 0x7FU, 0x09U, 0x09U, 0x09U, 0x06U }, /* P */
        { 0x3EU, 0x41U, 0x51U, 0x21U, 0x5EU }, /* Q */
        { 0x7FU, 0x09U, 0x19U, 0x29U, 0x46U }, /* R */
        { 0x46U, 0x49U, 0x49U, 0x49U, 0x31U }, /* S */
        { 0x01U, 0x01U, 0x7FU, 0x01U, 0x01U }, /* T */
        { 0x3FU, 0x40U, 0x40U, 0x40U, 0x3FU }, /* U */
        { 0x1FU, 0x20U, 0x40U, 0x20U, 0x1FU }, /* V */
        { 0x3FU, 0x40U, 0x38U, 0x40U, 0x3FU }, /* W */
        { 0x63U, 0x14U, 0x08U, 0x14U, 0x63U }, /* X */
        { 0x07U, 0x08U, 0x70U, 0x08U, 0x07U }, /* Y */
        { 0x61U, 0x51U, 0x49U, 0x45U, 0x43U }, /* Z */
        { 0x00U, 0x7FU, 0x41U, 0x41U, 0x00U }, /* [ */
        { 0x02U, 0x04U, 0x08U, 0x10U, 0x20U }, /* \ */
        { 0x00U, 0x41U, 0x41U, 0x7FU, 0x00U }, /* ] */
        { 0x04U, 0x02U, 0x01U, 0x02U, 0x04U }, /* ^ */
        { 0x40U, 0x40U, 0x40U, 0x40U, 0x40U }, /* _ */
        { 0x00U, 0x01U, 0x02U, 0x04U, 0x00U }, /* ` */
        { 0x20U, 0x54U, 0x54U, 0x54U, 0x78U }, /* a */
        { 0x7FU, 0x48U, 0x44U, 0x44U, 0x38U }, /* b */
        { 0x38U, 0x44U, 0x44U, 0x44U, 0x20U }, /* c */
        { 0x38U, 0x44U, 0x44U, 0x48U, 0x7FU }, /* d */
        { 0x38U, 0x54U, 0x54U, 0x54U, 0x18U }, /* e */
        { 0x08U, 0x7EU, 0x09U, 0x01U, 0x02U }, /* f */
        { 0x0CU, 0x52U, 0x52U, 0x52U, 0x3EU }, /* g */
        { 0x7FU, 0x08U, 0x04U, 0x04U, 0x78U }, /* h */
        { 0x00U, 0x44U, 0x7DU, 0x40U, 0x00U }, /* i */
        { 0x20U, 0x40U, 0x44U, 0x3DU, 0x00U }, /* j */
        { 0x7FU, 0x10U, 0x28U, 0x44U, 0x00U }, /* k */
        { 0x00U, 0x41U, 0x7FU, 0x40U, 0x00U }, /* l */
        { 0x7CU, 0x04U, 0x18U, 0x04U, 0x78U }, /* m */
        { 0x7CU, 0x08U, 0x04U, 0x04U, 0x78U }, /* n */
        { 0x38U, 0x44U, 0x44U, 0x44U, 0x38U }, /* o */
        { 0x7CU, 0x14U, 0x14U, 0x14U, 0x08U }, /* p */
        { 0x08U, 0x14U, 0x14U, 0x18U, 0x7CU }, /* q */
        { 0x7CU, 0x08U, 0x04U, 0x04U, 0x08U }, /* r */
        { 0x48U, 0x54U, 0x54U, 0x54U, 0x20U }, /* s */
        { 0x04U, 0x3FU, 0x44U, 0x40U, 0x20U }, /* t */
        { 0x3CU, 0x40U, 0x40U, 0x20U, 0x7CU }, /* u */
        { 0x1CU, 0x20U, 0x40U, 0x20U, 0x1CU }, /* v */
        { 0x3CU, 0x40U, 0x30U, 0x40U, 0x3CU }, /* w */
        { 0x44U, 0x28U, 0x10U, 0x28U, 0x44U }, /* x */
        { 0x0CU, 0x50U, 0x50U, 0x50U, 0x3CU }, /* y */
        { 0x44U, 0x64U, 0x54U, 0x4CU, 0x44U }, /* z */
        { 0x00U, 0x08U, 0x36U, 0x41U, 0x00U }, /* { */
        { 0x00U, 0x00U, 0x7FU, 0x00U, 0x00U }, /* | */
        { 0x00U, 0x41U, 0x36U, 0x08U, 0x00U }, /* } */
        { 0x02U, 0x01U, 0x02U, 0x04U, 0x02U }, /* ~ */
    };
    UINT dx, dy;

    while (*str != '\0') {
        uint8_t const *ch = &font5x7[*str - ' '][0];
        for (dx = 0U; dx < 5U; ++dx) {
            for (dy = 0U; dy < 8U; ++dy) {
                if ((ch[dx] & (1U << dy)) != 0U) {
                    GraphicDisplay_setPixel(&l_oled, (UINT)(x + dx),
                                         (UINT)(y*8U + dy), c_onColor);
                }
                else {
                    GraphicDisplay_clearPixel(&l_oled, (UINT)(x + dx),
                                           (UINT)(y*8U + dy));
                }
            }
        }
        ++str;
        x += 6;
    }
    GraphicDisplay_redraw(&l_oled); /* redraw the updated display */
}