Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //
- // Font data for f_04b03 6pt
- //
- // Character bitmaps for f_04b03 6pt
- static const uint8_t f_04b036ptBitmaps[] PROGMEM =
- {
- // @0 ' ' (2 pixels wide)
- 0b00000000, //
- 0b00000000, //
- // @2 '!' (1 pixels wide)
- 0b00101110, // # ###
- // @3 '"' (3 pixels wide)
- 0b00000110, // ##
- 0b00000000, //
- 0b00000110, // ##
- // @6 '#' (5 pixels wide)
- 0b00010100, // # #
- 0b00111110, // #####
- 0b00010100, // # #
- 0b00111110, // #####
- 0b00010100, // # #
- // @11 '$' (4 pixels wide)
- 0b00101000, // # #
- 0b00101100, // # ##
- 0b01110110, // ### ##
- 0b00010100, // # #
- // @15 '%' (5 pixels wide)
- 0b00000010, // #
- 0b00110000, // ##
- 0b00001000, // #
- 0b00000110, // ##
- 0b00100000, // #
- // @20 '&' (5 pixels wide)
- 0b00010100, // # #
- 0b00101010, // # # #
- 0b00101010, // # # #
- 0b00010000, // #
- 0b00101000, // # #
- // @25 ''' (1 pixels wide)
- 0b00000110, // ##
- // @26 '(' (2 pixels wide)
- 0b00011100, // ###
- 0b00100010, // # #
- // @28 ')' (2 pixels wide)
- 0b00100010, // # #
- 0b00011100, // ###
- // @30 '*' (3 pixels wide)
- 0b00001010, // # #
- 0b00000100, // #
- 0b00001010, // # #
- // @33 '+' (3 pixels wide)
- 0b00001000, // #
- 0b00011100, // ###
- 0b00001000, // #
- // @36 ',' (2 pixels wide)
- 0b01000000, // #
- 0b00100000, // #
- // @38 '-' (3 pixels wide)
- 0b00001000, // #
- 0b00001000, // #
- 0b00001000, // #
- // @41 '.' (1 pixels wide)
- 0b00100000, // #
- // @42 '/' (5 pixels wide)
- 0b00100000, // #
- 0b00010000, // #
- 0b00001000, // #
- 0b00000100, // #
- 0b00000010, // #
- // @47 '0' (4 pixels wide)
- 0b00011100, // ###
- 0b00100010, // # #
- 0b00100010, // # #
- 0b00011100, // ###
- // @51 '1' (2 pixels wide)
- 0b00000010, // #
- 0b00111110, // #####
- // @53 '2' (4 pixels wide)
- 0b00110010, // ## #
- 0b00101010, // # # #
- 0b00101010, // # # #
- 0b00100100, // # #
- // @57 '3' (4 pixels wide)
- 0b00100010, // # #
- 0b00101010, // # # #
- 0b00101010, // # # #
- 0b00010100, // # #
- // @61 '4' (4 pixels wide)
- 0b00011000, // ##
- 0b00010100, // # #
- 0b00111110, // #####
- 0b00010000, // #
- // @65 '5' (4 pixels wide)
- 0b00101110, // # ###
- 0b00101010, // # # #
- 0b00101010, // # # #
- 0b00010010, // # #
- // @69 '6' (4 pixels wide)
- 0b00011100, // ###
- 0b00101010, // # # #
- 0b00101010, // # # #
- 0b00010000, // #
- // @73 '7' (4 pixels wide)
- 0b00000010, // #
- 0b00110010, // ## #
- 0b00001010, // # #
- 0b00000110, // ##
- // @77 '8' (4 pixels wide)
- 0b00010100, // # #
- 0b00101010, // # # #
- 0b00101010, // # # #
- 0b00010100, // # #
- // @81 '9' (4 pixels wide)
- 0b00000100, // #
- 0b00101010, // # # #
- 0b00101010, // # # #
- 0b00011100, // ###
- // @85 ':' (1 pixels wide)
- 0b00010100, // # #
- // @86 ';' (1 pixels wide)
- 0b00110100, // ## #
- // @87 '<' (3 pixels wide)
- 0b00001000, // #
- 0b00010100, // # #
- 0b00100010, // # #
- // @90 '=' (3 pixels wide)
- 0b00010100, // # #
- 0b00010100, // # #
- 0b00010100, // # #
- // @93 '>' (3 pixels wide)
- 0b00100010, // # #
- 0b00010100, // # #
- 0b00001000, // #
- // @96 '?' (4 pixels wide)
- 0b00000010, // #
- 0b00101010, // # # #
- 0b00001010, // # #
- 0b00000100, // #
- // @100 '@' (5 pixels wide)
- 0b00011100, // ###
- 0b00100010, // # #
- 0b00111010, // ### #
- 0b00101010, // # # #
- 0b00011100, // ###
- // @105 'A' (4 pixels wide)
- 0b00111100, // ####
- 0b00010010, // # #
- 0b00010010, // # #
- 0b00111100, // ####
- // @109 'B' (4 pixels wide)
- 0b00111110, // #####
- 0b00101010, // # # #
- 0b00101010, // # # #
- 0b00010100, // # #
- // @113 'C' (3 pixels wide)
- 0b00011100, // ###
- 0b00100010, // # #
- 0b00100010, // # #
- // @116 'D' (4 pixels wide)
- 0b00111110, // #####
- 0b00100010, // # #
- 0b00100010, // # #
- 0b00011100, // ###
- // @120 'E' (3 pixels wide)
- 0b00111110, // #####
- 0b00101010, // # # #
- 0b00101010, // # # #
- // @123 'F' (3 pixels wide)
- 0b00111110, // #####
- 0b00001010, // # #
- 0b00001010, // # #
- // @126 'G' (4 pixels wide)
- 0b00011100, // ###
- 0b00100010, // # #
- 0b00101010, // # # #
- 0b00111010, // ### #
- // @130 'H' (4 pixels wide)
- 0b00111110, // #####
- 0b00001000, // #
- 0b00001000, // #
- 0b00111110, // #####
- // @134 'I' (3 pixels wide)
- 0b00100010, // # #
- 0b00111110, // #####
- 0b00100010, // # #
- // @137 'J' (4 pixels wide)
- 0b00010000, // #
- 0b00100000, // #
- 0b00100010, // # #
- 0b00011110, // ####
- // @141 'K' (4 pixels wide)
- 0b00111110, // #####
- 0b00001000, // #
- 0b00010100, // # #
- 0b00100010, // # #
- // @145 'L' (3 pixels wide)
- 0b00111110, // #####
- 0b00100000, // #
- 0b00100000, // #
- // @148 'M' (5 pixels wide)
- 0b00111110, // #####
- 0b00000100, // #
- 0b00001000, // #
- 0b00000100, // #
- 0b00111110, // #####
- // @153 'N' (4 pixels wide)
- 0b00111110, // #####
- 0b00000100, // #
- 0b00001000, // #
- 0b00111110, // #####
- // @157 'O' (4 pixels wide)
- 0b00011100, // ###
- 0b00100010, // # #
- 0b00100010, // # #
- 0b00011100, // ###
- // @161 'P' (4 pixels wide)
- 0b00111110, // #####
- 0b00010010, // # #
- 0b00010010, // # #
- 0b00001100, // ##
- // @165 'Q' (4 pixels wide)
- 0b00011100, // ###
- 0b00100010, // # #
- 0b00100010, // # #
- 0b01011100, // # ###
- // @169 'R' (4 pixels wide)
- 0b00111110, // #####
- 0b00010010, // # #
- 0b00010010, // # #
- 0b00101100, // # ##
- // @173 'S' (4 pixels wide)
- 0b00100100, // # #
- 0b00101010, // # # #
- 0b00101010, // # # #
- 0b00010010, // # #
- // @177 'T' (3 pixels wide)
- 0b00000010, // #
- 0b00111110, // #####
- 0b00000010, // #
- // @180 'U' (4 pixels wide)
- 0b00011110, // ####
- 0b00100000, // #
- 0b00100000, // #
- 0b00011110, // ####
- // @184 'V' (4 pixels wide)
- 0b00011110, // ####
- 0b00100000, // #
- 0b00011000, // ##
- 0b00000110, // ##
- // @188 'W' (5 pixels wide)
- 0b00011110, // ####
- 0b00100000, // #
- 0b00011100, // ###
- 0b00100000, // #
- 0b00011110, // ####
- // @193 'X' (4 pixels wide)
- 0b00110110, // ## ##
- 0b00001000, // #
- 0b00001000, // #
- 0b00110110, // ## ##
- // @197 'Y' (4 pixels wide)
- 0b00000110, // ##
- 0b00101000, // # #
- 0b00101000, // # #
- 0b00011110, // ####
- // @201 'Z' (3 pixels wide)
- 0b00110010, // ## #
- 0b00101010, // # # #
- 0b00100110, // # ##
- // @204 '[' (2 pixels wide)
- 0b00111110, // #####
- 0b00100010, // # #
- // @206 '\' (5 pixels wide)
- 0b00000010, // #
- 0b00000100, // #
- 0b00001000, // #
- 0b00010000, // #
- 0b00100000, // #
- // @211 ']' (2 pixels wide)
- 0b00100010, // # #
- 0b00111110, // #####
- // @213 '^' (3 pixels wide)
- 0b00000100, // #
- 0b00000010, // #
- 0b00000100, // #
- // @216 '_' (4 pixels wide)
- 0b00100000, // #
- 0b00100000, // #
- 0b00100000, // #
- 0b00100000, // #
- // @220 '`' (2 pixels wide)
- 0b00000010, // #
- 0b00000100, // #
- // @222 'a' (4 pixels wide)
- 0b00011000, // ##
- 0b00100100, // # #
- 0b00100100, // # #
- 0b00111100, // ####
- // @226 'b' (4 pixels wide)
- 0b00111110, // #####
- 0b00100100, // # #
- 0b00100100, // # #
- 0b00011000, // ##
- // @230 'c' (3 pixels wide)
- 0b00011000, // ##
- 0b00100100, // # #
- 0b00100100, // # #
- // @233 'd' (4 pixels wide)
- 0b00011000, // ##
- 0b00100100, // # #
- 0b00100100, // # #
- 0b00111110, // #####
- // @237 'e' (4 pixels wide)
- 0b00011000, // ##
- 0b00110100, // ## #
- 0b00101100, // # ##
- 0b00001000, // #
- // @241 'f' (3 pixels wide)
- 0b00001000, // #
- 0b00111100, // ####
- 0b00001010, // # #
- // @244 'g' (4 pixels wide)
- 0b00011000, // ##
- 0b10100100, // # # #
- 0b10100100, // # # #
- 0b01111100, // #####
- // @248 'h' (4 pixels wide)
- 0b00111110, // #####
- 0b00000100, // #
- 0b00000100, // #
- 0b00111000, // ###
- // @252 'i' (1 pixels wide)
- 0b00111010, // ### #
- // @253 'j' (2 pixels wide)
- 0b10000000, // #
- 0b01111010, // #### #
- // @255 'k' (4 pixels wide)
- 0b00111110, // #####
- 0b00010000, // #
- 0b00011000, // ##
- 0b00100100, // # #
- // @259 'l' (1 pixels wide)
- 0b00111110, // #####
- // @260 'm' (5 pixels wide)
- 0b00111100, // ####
- 0b00000100, // #
- 0b00111100, // ####
- 0b00000100, // #
- 0b00111000, // ###
- // @265 'n' (4 pixels wide)
- 0b00111100, // ####
- 0b00000100, // #
- 0b00000100, // #
- 0b00111000, // ###
- // @269 'o' (4 pixels wide)
- 0b00011000, // ##
- 0b00100100, // # #
- 0b00100100, // # #
- 0b00011000, // ##
- // @273 'p' (4 pixels wide)
- 0b11111100, // ######
- 0b00100100, // # #
- 0b00100100, // # #
- 0b00011000, // ##
- // @277 'q' (4 pixels wide)
- 0b00011000, // ##
- 0b00100100, // # #
- 0b00100100, // # #
- 0b11111100, // ######
- // @281 'r' (3 pixels wide)
- 0b00111100, // ####
- 0b00001000, // #
- 0b00000100, // #
- // @284 's' (4 pixels wide)
- 0b00101000, // # #
- 0b00101100, // # ##
- 0b00110100, // ## #
- 0b00010100, // # #
- // @288 't' (3 pixels wide)
- 0b00000100, // #
- 0b00011110, // ####
- 0b00100100, // # #
- // @291 'u' (4 pixels wide)
- 0b00011100, // ###
- 0b00100000, // #
- 0b00100000, // #
- 0b00111100, // ####
- // @295 'v' (4 pixels wide)
- 0b00011100, // ###
- 0b00100000, // #
- 0b00010000, // #
- 0b00001100, // ##
- // @299 'w' (5 pixels wide)
- 0b00001100, // ##
- 0b00110000, // ##
- 0b00001100, // ##
- 0b00110000, // ##
- 0b00001100, // ##
- // @304 'x' (3 pixels wide)
- 0b00100100, // # #
- 0b00011000, // ##
- 0b00100100, // # #
- // @307 'y' (4 pixels wide)
- 0b00011100, // ###
- 0b10100000, // # #
- 0b10100000, // # #
- 0b01111100, // #####
- // @311 'z' (4 pixels wide)
- 0b00100100, // # #
- 0b00110100, // ## #
- 0b00101100, // # ##
- 0b00100100, // # #
- // @315 '{' (3 pixels wide)
- 0b00001000, // #
- 0b00110110, // ## ##
- 0b00100010, // # #
- // @318 '|' (1 pixels wide)
- 0b00111110, // #####
- // @319 '}' (3 pixels wide)
- 0b00100010, // # #
- 0b00110110, // ## ##
- 0b00001000, // #
- // @322 '~' (4 pixels wide)
- 0b00000100, // #
- 0b00000010, // #
- 0b00000100, // #
- 0b00000010, // #
- };
- // Character descriptors for f_04b03 6pt
- // { [Char width in bits], [Char height in bits], [Offset into f_04b036ptCharBitmaps in bytes] }
- static const uint16_t f_04b036ptDescriptors[95][3] PROGMEM =
- {
- {2, 7, 0}, //
- {1, 7, 2}, // !
- {3, 7, 3}, // "
- {5, 7, 6}, // #
- {4, 7, 11}, // $
- {5, 7, 15}, // %
- {5, 7, 20}, // &
- {1, 7, 25}, // '
- {2, 7, 26}, // (
- {2, 7, 28}, // )
- {3, 7, 30}, // *
- {3, 7, 33}, // +
- {2, 7, 36}, // ,
- {3, 7, 38}, // -
- {1, 7, 41}, // .
- {5, 7, 42}, // /
- {4, 7, 47}, // 0
- {2, 7, 51}, // 1
- {4, 7, 53}, // 2
- {4, 7, 57}, // 3
- {4, 7, 61}, // 4
- {4, 7, 65}, // 5
- {4, 7, 69}, // 6
- {4, 7, 73}, // 7
- {4, 7, 77}, // 8
- {4, 7, 81}, // 9
- {1, 7, 85}, // :
- {1, 7, 86}, // ;
- {3, 7, 87}, // <
- {3, 7, 90}, // =
- {3, 7, 93}, // >
- {4, 7, 96}, // ?
- {5, 7, 100}, // @
- {4, 7, 105}, // A
- {4, 7, 109}, // B
- {3, 7, 113}, // C
- {4, 7, 116}, // D
- {3, 7, 120}, // E
- {3, 7, 123}, // F
- {4, 7, 126}, // G
- {4, 7, 130}, // H
- {3, 7, 134}, // I
- {4, 7, 137}, // J
- {4, 7, 141}, // K
- {3, 7, 145}, // L
- {5, 7, 148}, // M
- {4, 7, 153}, // N
- {4, 7, 157}, // O
- {4, 7, 161}, // P
- {4, 7, 165}, // Q
- {4, 7, 169}, // R
- {4, 7, 173}, // S
- {3, 7, 177}, // T
- {4, 7, 180}, // U
- {4, 7, 184}, // V
- {5, 7, 188}, // W
- {4, 7, 193}, // X
- {4, 7, 197}, // Y
- {3, 7, 201}, // Z
- {2, 7, 204}, // [
- {5, 7, 206}, // forward slash
- {2, 7, 211}, // ]
- {3, 7, 213}, // ^
- {4, 7, 216}, // _
- {2, 7, 220}, // `
- {4, 7, 222}, // a
- {4, 7, 226}, // b
- {3, 7, 230}, // c
- {4, 7, 233}, // d
- {4, 7, 237}, // e
- {3, 7, 241}, // f
- {4, 7, 244}, // g
- {4, 7, 248}, // h
- {1, 7, 252}, // i
- {2, 7, 253}, // j
- {4, 7, 255}, // k
- {1, 7, 259}, // l
- {5, 7, 260}, // m
- {4, 7, 265}, // n
- {4, 7, 269}, // o
- {4, 7, 273}, // p
- {4, 7, 277}, // q
- {3, 7, 281}, // r
- {4, 7, 284}, // s
- {3, 7, 288}, // t
- {4, 7, 291}, // u
- {4, 7, 295}, // v
- {5, 7, 299}, // w
- {3, 7, 304}, // x
- {4, 7, 307}, // y
- {4, 7, 311}, // z
- {3, 7, 315}, // {
- {1, 7, 318}, // |
- {3, 7, 319}, // }
- {4, 7, 322}, // ~
- };
- // Font information for f_04b03 6pt
- static const uint16_t f_04b036ptFontInfo[] PROGMEM =
- {
- 1, // Character height
- ' ', // Start character
- '~', // End character
- };
- void lcd_lib_draw_small_stringP(uint8_t x, uint8_t y, const char* pstr)
- {
- uint8_t* dst = lcd_buffer + x + (y / 8) * LCD_GFX_WIDTH;
- uint8_t* dst2 = lcd_buffer + x + (y / 8) * LCD_GFX_WIDTH + LCD_GFX_WIDTH;
- uint8_t yshift = y % 8;
- uint8_t yshift2 = 8 - yshift;
- uint16_t offset;
- uint8_t index;
- uint8_t i = 0;
- uint8_t width;
- for(char c = pgm_read_byte(pstr); c; c = pgm_read_byte(++pstr))
- {
- char buffer[16];
- index = c - 32;
- offset = (uint16_t)pgm_read_word(&f_04b036ptDescriptors[index][2]);
- width = (uint16_t)pgm_read_word(&f_04b036ptDescriptors[index][0]);
- const uint8_t* src = f_04b036ptBitmaps + offset;
- for(i = 0; i < width; i++){
- *dst = (*dst) | pgm_read_byte(src++) << yshift; dst++;
- }
- dst++;
- }
- }
- void lcd_lib_draw_small_string(uint8_t x, uint8_t y, const char* str)
- {
- uint8_t* dst = lcd_buffer + x + (y / 8) * LCD_GFX_WIDTH;
- uint8_t* dst2 = lcd_buffer + x + (y / 8) * LCD_GFX_WIDTH + LCD_GFX_WIDTH;
- uint8_t yshift = y % 8;
- uint8_t yshift2 = 8 - yshift;
- uint16_t offset;
- uint8_t index;
- uint8_t i = 0;
- uint8_t width;
- while(*str)
- {
- index = *str - 32;
- offset = (uint16_t)pgm_read_word(&f_04b036ptDescriptors[index][2]);
- width = (uint16_t)pgm_read_word(&f_04b036ptDescriptors[index][0]);
- const uint8_t* src = f_04b036ptBitmaps + offset;
- for(i = 0; i < width; i++){
- *dst = (*dst) | pgm_read_byte(src++) << yshift; dst++;
- }
- dst++;
- str++;
- }
- }
- ############# How I was testing it ############
- lcd_lib_draw_small_stringP(1, 0, PSTR("10h30m UltiRobot"));
- lcd_lib_draw_small_stringP(4, 8, PSTR("Head:"));
- lcd_lib_draw_small_stringP(9, 16, PSTR("Bed:"));
- lcd_lib_draw_small_stringP(10, 24, PSTR("Fan:"));
- lcd_lib_draw_small_stringP(18, 32, PSTR("Z:"));
- lcd_lib_draw_small_stringP(1, 40, PSTR("Layer:"));
- lcd_lib_draw_small_stringP(8, 48, PSTR("Line:"));
- // lcd_lib_draw_small_stringP(0, 56, PSTR("Line8"));
- // lcd_lib_draw_small_stringP(28, 8, PSTR("233C/235C"));
- lcd_lib_draw_small_stringP(28, 16, PSTR("59C/60C"));
- lcd_lib_draw_small_stringP(28, 24, PSTR("100%"));
- lcd_lib_draw_small_stringP(28, 32, PSTR("5.10mm"));
- lcd_lib_draw_small_stringP(28, 40, PSTR("28"));
- lcd_lib_draw_small_stringP(28, 48, PSTR("14805/119801"));
- lcd_lib_draw_small_stringP(80, 8, PSTR("Speed:"));
- lcd_lib_draw_small_stringP(88, 16, PSTR("Flow:"));
- char buffer[16];
- lcd_material_set_material(2, 0);
- int_to_string(current_temperature[0], buffer);
- lcd_lib_draw_small_string(28,8, buffer);
- lcd_lib_draw_small_stringP(108, 8, PSTR("100%"));
- lcd_lib_draw_small_stringP(108, 16, PSTR("100%"));
RAW Paste Data