Maxim Integrated
/
MAXREFDES99_demo
Demo for MAXREFDES99
Diff: maxrefdes99.cpp
- Revision:
- 3:41bdbc9b3cec
- Parent:
- 2:9fdd01cf0f88
- Child:
- 6:00aabe967e51
--- a/maxrefdes99.cpp Thu Mar 24 23:35:56 2016 +0000 +++ b/maxrefdes99.cpp Mon Apr 11 16:19:13 2016 +0000 @@ -3,13 +3,13 @@ * * @author Justin Jordan * -* @version 0.0 +* @version 0.1 * * Started: 08JAN16 * -* Updated: +* Updated: 11APR16,Pradip Vatharkar * -* @brief Source file for maxrefdes99 demo +* @brief Source file for maxrefdes99 demo with 5x7 & 16x16 fonts *********************************************************************** * Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved. * @@ -145,14 +145,501 @@ {0x00,0x0C,0x02,0x0C,0x10,0x0C} // ~ }; +// 16*16 character bit map for Aerial bold fonts -static uint8_t display_buff[256]; +static const uint8_t Aerial_bold_font_16x16[95][32] = { + +{0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, // SPACE + +{0x0,0x0,0x0,0x0,0x0,0x0,0x3F,0x3F, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xEC,0xEC, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, // ! + +{0x0,0x0,0x0,0x0,0x0,0x3C,0x3C,0x0, +0x0,0x3C,0x3C,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, //" + +{0x0,0x0,0x6,0x6,0x6,0xF,0x3F,0x36, +0xF,0x3F,0x36,0x6,0x0,0x0,0x0,0x0, +0x0,0x0,0x60,0x6C,0xFC,0xF0,0x6C,0xFC, +0xF0,0x60,0x60,0x60,0x0,0x0,0x0,0x0},// # + +{0x0,0x0,0x0,0x0,0xE,0x1F,0x33,0x7F, +0x31,0x18,0x8,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x30,0x38,0x8C,0xFE, +0xCC,0xF8,0x70,0x0,0x0,0x0,0x0,0x0}, //$ + +{0x0,0x1E,0x3F,0x21,0x21,0x3F,0x1E,0x0, +0x3,0x7,0x1C,0x38,0x20,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x4,0xC,0x38,0xF0, +0xC0,0x0,0x78,0xFC,0x84,0x84,0xFC,0x78},//% + +{0x0,0x0,0x0,0x0,0x1C,0x3F,0x33,0x33, +0x33,0x3E,0x1C,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x70,0xF8,0x8C,0xC,0xCC, +0xEC,0x78,0x38,0xF8,0x5C,0x8,0x0,0x0},//& + +{0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3C, +0x3C,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0},//' + +{0x0,0x0,0x0,0x0,0x0,0xF,0x3F,0x70, +0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0xE0,0xF8,0x1C, +0x4,0x0,0x0,0x0,0x0,0x0,0x0,0x0},//( + +{0x0,0x0,0x0,0x0,0x0,0x40,0x70,0x3F, +0xF,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x4,0x1C,0xF8, +0xE0,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, //} + +{0x0,0x0,0x3,0x3,0x1,0x1,0xF,0xF, +0xF,0x1,0x1,0x3,0x3,0x0,0x0,0x0, +0x0,0x0,0x0,0x10,0x30,0xF8,0xE0,0xC0, +0xE0,0xF8,0x30,0x10,0x0,0x0,0x0,0x0},//* + +{0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x7,0x7,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0xC0,0xC0,0xC0, +0xF8,0xF8,0xC0,0xC0,0xC0,0x0,0x0,0x0},//+ + +{0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x32,0x3C, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, //, + +{0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xC0,0xC0, +0xC0,0xC0,0xC0,0x0,0x0,0x0,0x0,0x0},// - + +{0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x18,0x18, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, // . + +{0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xF,0x3F,0x30,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xC,0xFC, +0xF0,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, // / + +{0x0,0x0,0x0,0x0,0xF,0x1F,0x38,0x30, +0x30,0x38,0x1F,0xF,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xF0,0xF8,0x1C,0xC, +0xC,0x1C,0xF8,0xF0,0x0,0x0,0x0,0x0}, // 0 + +{0x0,0x0,0x0,0x0,0x6,0xC,0x18,0x3F, +0x3F,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xFC, +0xFC,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, // 1 + +{0x0,0x0,0x0,0x0,0xC,0x1C,0x38,0x30, +0x30,0x31,0x1F,0xE,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xC,0x1C,0x3C,0x6C, +0xEC,0xCC,0x8C,0xC,0x0,0x0,0x0,0x0},// 2 + +{0x0,0x0,0x0,0x0,0x8,0x18,0x38,0x33, +0x33,0x33,0x3F,0x1C,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x30,0x38,0x1C,0xC, +0xC,0x9C,0xF8,0xF0,0x0,0x0,0x0,0x0}, // 3 + +{0x0,0x0,0x0,0x0,0x0,0x0,0x3,0x7, +0x1C,0x3F,0x3F,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x70,0xF0,0xB0,0x30, +0x30,0xFC,0xFC,0x30,0x0,0x0,0x0,0x0},//4 + +{0x0,0x0,0x0,0x0,0x7,0x3F,0x3B,0x33, +0x33,0x33,0x31,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xB0,0xB8,0x1C,0xC, +0xC,0x9C,0xF8,0xF0,0x0,0x0,0x0,0x0}, //5 + +{0x0,0x0,0x0,0x0,0x7,0x1F,0x39,0x33, +0x33,0x33,0x39,0x18,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xE0,0xF8,0x9C,0xC, +0xC,0x8C,0xF8,0xF0,0x0,0x0,0x0,0x0}, //6 + +{0x0,0x0,0x0,0x0,0x30,0x30,0x30,0x31, +0x37,0x3E,0x38,0x30,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x3C,0xFC, +0xE0,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, // 7 + +{0x0,0x0,0x0,0x0,0xE,0x1F,0x31,0x31, +0x31,0x31,0x1F,0xE,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x70,0xF8,0x8C,0x8C, +0x8C,0x8C,0xF8,0x70,0x0,0x0,0x0,0x0}, //8 + +{0x0,0x0,0x0,0x0,0xF,0x1F,0x31,0x30, +0x30,0x39,0x1F,0x7,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x18,0x9C,0xCC,0xCC, +0xCC,0x9C,0xF8,0xE0,0x0,0x0,0x0,0x0}, //9 + +{0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x18, +0x18,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x30, +0x30,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, // : + +{0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x18, +0x18,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x32, +0x3C,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, // ; + +{0x0,0x0,0x0,0x0,0x1,0x1,0x3,0x3, +0x6,0x6,0xC,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x80,0xC0,0xC0,0x60,0x60, +0x30,0x30,0x18,0x0,0x0,0x0,0x0,0x0}, // < + +{0x0,0x0,0x0,0xC,0xC,0xC,0xC,0xC, +0xC,0xC,0xC,0xC,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0xC0,0xC0,0xC0,0xC0,0xC0, +0xC0,0xC0,0xC0,0xC0,0x0,0x0,0x0,0x0}, // = + +{0x0,0x0,0x0,0x0,0xC,0x6,0x6,0x3, +0x3,0x1,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x18,0x30,0x30,0x60, +0x60,0xC0,0xC0,0x80,0x0,0x0,0x0,0x0}, // > + +{0x0,0x0,0x0,0x0,0xC,0x1C,0x38,0x30, +0x31,0x33,0x1F,0xE,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xEC, +0xEC,0x80,0x0,0x0,0x0,0x0,0x0,0x0}, // ? + +{0x0,0x0,0x7,0x18,0x27,0x6F,0x58,0x58, +0x4F,0x5F,0x38,0x30,0x1F,0x0,0x0,0x0, +0x0,0x0,0xC0,0x20,0x90,0xC8,0xC8,0x88, +0xC8,0xC8,0x48,0x90,0x20,0x0,0x0,0x0}, //@ + +{0x0,0x0,0x0,0x0,0x1,0xF,0x3E,0x30, +0x3E,0xF,0x1,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x4,0x3C,0xF8,0xE0,0x60,0x60, +0x60,0xE0,0xF8,0x3C,0x4,0x0,0x0,0x0}, // A + +{0x0,0x0,0x0,0x3F,0x3F,0x31,0x31,0x31, +0x31,0x31,0x3F,0x1E,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0xFC,0xFC,0x8C,0x8C,0x8C, +0x8C,0x8C,0x8C,0xF8,0x70,0x0,0x0,0x0}, // B + +{0x0,0x0,0x0,0x7,0x1F,0x1C,0x30,0x30, +0x30,0x30,0x38,0x1C,0x8,0x0,0x0,0x0, +0x0,0x0,0x0,0xE0,0xF8,0x38,0xC,0xC, +0xC,0xC,0x1C,0x38,0x10,0x0,0x0,0x0}, // C + +{0x0,0x0,0x0,0x3F,0x3F,0x30,0x30,0x30, +0x30,0x30,0x18,0x1F,0x7,0x0,0x0,0x0, +0x0,0x0,0x0,0xFC,0xFC,0xC,0xC,0xC, +0xC,0xC,0x18,0xF8,0xE0,0x0,0x0,0x0}, // D + +{0x0,0x0,0x0,0x0,0x3F,0x3F,0x31,0x31, +0x31,0x31,0x31,0x31,0x31,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xFC,0xFC,0x8C,0x8C, +0x8C,0x8C,0x8C,0x8C,0x8C,0x0,0x0,0x0}, // E + +{0x0,0x0,0x0,0x0,0x3F,0x3F,0x31,0x31, +0x31,0x31,0x31,0x30,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xFC,0xFC,0x80,0x80, +0x80,0x80,0x80,0x0,0x0,0x0,0x0,0x0}, // F + +{0x0,0x0,0x7,0x1F,0x1C,0x30,0x30,0x30, +0x30,0x30,0x38,0x1C,0x8,0x0,0x0,0x0, +0x0,0x0,0xE0,0xF8,0x38,0xC,0xC,0xC, +0xCC,0xCC,0xDC,0xF8,0xF8,0x0,0x0,0x0}, //G + +{0x0,0x0,0x0,0x3F,0x3F,0x1,0x1,0x1, +0x1,0x1,0x1,0x3F,0x3F,0x0,0x0,0x0, +0x0,0x0,0x0,0xFC,0xFC,0x80,0x80,0x80, +0x80,0x80,0x80,0xFC,0xFC,0x0,0x0,0x0}, //H + +{0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3F, +0x3F,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xFC, +0xFC,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, // I + +{0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x3F,0x3F,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x30,0x38,0x1C,0xC, +0xC,0x1C,0xF8,0xF0,0x0,0x0,0x0,0x0}, // J + +{0x0,0x0,0x0,0x3F,0x3F,0x0,0x1,0x3, +0x7,0xD,0x18,0x30,0x20,0x0,0x0,0x0, +0x0,0x0,0x0,0xFC,0xFC,0xC0,0x80,0x0, +0x80,0xE0,0x70,0x3C,0xC,0x0,0x0,0x0}, //K + +{0x0,0x0,0x0,0x0,0x3F,0x3F,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xFC,0xFC,0xC,0xC, +0xC,0xC,0xC,0xC,0x0,0x0,0x0,0x0}, // L + +{0x0,0x0,0x3F,0x3F,0x3C,0xF,0x1,0x0, +0x1,0xF,0x3C,0x3F,0x3F,0x0,0x0,0x0, +0x0,0x0,0xFC,0xFC,0x0,0xC0,0xF8,0x3C, +0xF8,0xC0,0x0,0xFC,0xFC,0x0,0x0,0x0}, // M + +{0x0,0x0,0x0,0x3F,0x3F,0x1C,0xE,0x3, +0x1,0x0,0x0,0x3F,0x3F,0x0,0x0,0x0, +0x0,0x0,0x0,0xFC,0xFC,0x0,0x0,0x80, +0xC0,0x70,0x38,0xFC,0xFC,0x0,0x0,0x0}, // N + +{0x0,0x0,0x7,0x1F,0x18,0x30,0x30,0x30, +0x30,0x30,0x18,0x1F,0x7,0x0,0x0,0x0, +0x0,0x0,0xE0,0xF8,0x18,0xC,0xC,0xC, +0xC,0xC,0x18,0xF8,0xE0,0x0,0x0,0x0}, // O + +{0x0,0x0,0x0,0x0,0x3F,0x3F,0x31,0x31, +0x31,0x31,0x3B,0x1F,0xE,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xFC,0xFC,0x80,0x80, +0x80,0x80,0x80,0x0,0x0,0x0,0x0,0x0}, // P + +{0x0,0x0,0x7,0x1F,0x18,0x30,0x30,0x30, +0x30,0x30,0x18,0x1F,0x7,0x0,0x0,0x0, +0x0,0x0,0xE0,0xF8,0x18,0xC,0xC,0x2C, +0x3C,0x18,0x3C,0xFE,0xE2,0x0,0x0,0x0},// Q + +{0x0,0x0,0x0,0x3F,0x3F,0x31,0x31,0x31, +0x31,0x31,0x3B,0x1F,0xE,0x0,0x0,0x0, +0x0,0x0,0x0,0xFC,0xFC,0x80,0x80,0x80, +0xC0,0xE0,0x78,0x3C,0xC,0x4,0x0,0x0}, // R + +{0x0,0x0,0x0,0x0,0xE,0x1F,0x3B,0x33, +0x31,0x31,0x39,0x1C,0xC,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x30,0x38,0x1C,0x8C, +0x8C,0x8C,0xDC,0xF8,0x70,0x0,0x0,0x0}, //S + +{0x0,0x0,0x0,0x30,0x30,0x30,0x30,0x3F, +0x3F,0x30,0x30,0x30,0x30,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xFC, +0xFC,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, //T + +{0x0,0x0,0x0,0x3F,0x3F,0x0,0x0,0x0, +0x0,0x0,0x0,0x3F,0x3F,0x0,0x0,0x0, +0x0,0x0,0x0,0xF0,0xF8,0x1C,0xC,0xC, +0xC,0xC,0x1C,0xF8,0xF0,0x0,0x0,0x0}, //U + +{0x0,0x0,0x20,0x3C,0x1F,0x3,0x0,0x0, +0x0,0x3,0x1F,0x3C,0x20,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x80,0xE0,0xFC,0x1C, +0xFC,0xE0,0x80,0x0,0x0,0x0,0x0,0x0},//V + +{0x0,0x0,0x38,0x3F,0x7,0x0,0x7,0x3F, +0x38,0x3F,0x7,0x0,0x7,0x3F,0x38,0x0, +0x0,0x0,0x0,0xC0,0xFC,0x3C,0xFC,0xC0, +0x0,0xC0,0xFC,0x3C,0xFC,0xC0,0x0,0x0}, // W + +{0x0,0x0,0x0,0x30,0x38,0x1E,0x7,0x3, +0x7,0x1E,0x38,0x30,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0xC,0x1C,0x78,0xE0,0xC0, +0xE0,0x78,0x1C,0xC,0x0,0x0,0x0,0x0}, // X + +{0x0,0x0,0x0,0x30,0x38,0x1E,0x7,0x1, +0x1,0x7,0x1E,0x38,0x30,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xFC, +0xFC,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, // Y + +{0x0,0x0,0x0,0x0,0x0,0x30,0x30,0x30, +0x33,0x37,0x3E,0x38,0x30,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xC,0x1C,0x7C,0xEC, +0xCC,0xC,0xC,0xC,0xC,0x0,0x0,0x0}, // Z + +{0x0,0x0,0x0,0x0,0x0,0x0,0x7F,0x7F, +0x60,0x60,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xFE,0xFE, +0x6,0x6,0x0,0x0,0x0,0x0,0x0,0x0}, // [ + +{0x0,0x0,0x0,0x0,0x0,0x0,0x30,0x3F, +0xF,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0xF0,0xFC,0xC,0x0,0x0,0x0,0x0,0x0}, // backslash + +{0x0,0x0,0x0,0x0,0x0,0x0,0x60,0x60, +0x7F,0x7F,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x6,0x6, +0xFE,0xFE,0x0,0x0,0x0,0x0,0x0,0x0}, // ] + +{0x0,0x0,0x0,0x0,0x1,0xF,0x3E,0x70, +0x70,0x3E,0xF,0x1,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, // ^ + +{0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x6,0x6,0x6,0x6,0x6,0x6,0x6,0x6, +0x6,0x6,0x6,0x6,0x6,0x6,0x6,0x6}, // _ + +{0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20, +0x30,0x10,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, // ` + +{0x0,0x0,0x0,0x0,0x6,0xE,0xC,0xD, +0xD,0xF,0x7,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x70,0xF8,0xD8,0x98, +0x98,0xF0,0xF8,0x8,0x0,0x0,0x0,0x0}, // a + +{0x0,0x0,0x0,0x0,0x7F,0x7F,0x6,0xC, +0xC,0xE,0x7,0x3,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xF8,0xF8,0x30,0x18, +0x18,0x38,0xF0,0xE0,0x0,0x0,0x0,0x0}, // b + +{0x0,0x0,0x0,0x0,0x3,0x7,0xE,0xC, +0xC,0xE,0x6,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xE0,0xF0,0x38,0x18, +0x18,0x38,0x30,0x0,0x0,0x0,0x0,0x0}, //c + +{0x0,0x0,0x0,0x0,0x3,0x7,0xE,0xC, +0xC,0x6,0x7F,0x7F,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xE0,0xF0,0x38,0x18, +0x18,0x30,0xF8,0xF8,0x0,0x0,0x0,0x0}, // d + +{0x0,0x0,0x0,0x0,0x3,0x7,0xD,0xD, +0xD,0x7,0x3,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xE0,0xF0,0xB8,0x98, +0x98,0xB0,0xA0,0x0,0x0,0x0,0x0,0x0}, // e + +{0x0,0x0,0x0,0x0,0xC,0x3F,0x7F,0x6C, +0x6C,0x60,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0xF8,0xF8,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, // f + +{0x0,0x0,0x0,0x7,0xF,0x1C,0x18,0x18, +0xC,0x1F,0x1F,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0xCC,0xEE,0x76,0x36,0x36, +0x66,0xFE,0xFC,0x0,0x0,0x0,0x0,0x0}, // g + +{0x0,0x0,0x0,0x0,0x7F,0x7F,0x6,0xC, +0xC,0xC,0xF,0x7,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xF8,0xF8,0x0,0x0, +0x0,0x0,0xF8,0xF8,0x0,0x0,0x0,0x0}, //h + +{0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x37, +0x37,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xF8, +0xF8,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, // i + +{0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x37, +0x37,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x3,0x3,0xFF, +0xFE,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, // j + +{0x0,0x0,0x0,0x0,0x7F,0x7F,0x1,0x3, +0x7,0xC,0x8,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xF8,0xF8,0xC0,0x80, +0xE0,0xF8,0x18,0x0,0x0,0x0,0x0,0x0}, // k + +{0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7F, +0x7F,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xF8, +0xF8,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, // l + +{0x0,0x0,0xF,0xF,0x6,0xC,0xC,0xF, +0x7,0x6,0xC,0xC,0xF,0x7,0x0,0x0, +0x0,0x0,0xF8,0xF8,0x0,0x0,0x0,0xF8, +0xF8,0x0,0x0,0x0,0xF8,0xF8,0x0,0x0},// m + +0x0,0x0,0x0,0x0,0xF,0xF,0x6,0xC, +0xC,0xC,0xF,0x7,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xF8,0xF8,0x0,0x0, +0x0,0x0,0xF8,0xF8,0x0,0x0,0x0,0x0, // n + +{0x0,0x0,0x0,0x0,0x3,0x7,0xE,0xC, +0xC,0xE,0x7,0x3,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xE0,0xF0,0x38,0x18, +0x18,0x38,0xF0,0xE0,0x0,0x0,0x0,0x0}, // o + +{0x0,0x0,0x0,0x0,0xF,0xF,0x6,0xC, +0xC,0xE,0x7,0x3,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xFF,0xFF,0x30,0x18, +0x18,0x38,0xF0,0xE0,0x0,0x0,0x0,0x0}, // p + +{0x0,0x0,0x0,0x0,0x3,0x7,0xE,0xC, +0xC,0x6,0xF,0xF,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xE0,0xF0,0x38,0x18, +0x18,0x30,0xFF,0xFF,0x0,0x0,0x0,0x0}, //q + +{0x0,0x0,0x0,0x0,0x0,0x0,0xF,0xF, +0x6,0xC,0xC,0xC,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xF8,0xF8, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, //r + +{0x0,0x0,0x0,0x0,0x7,0xF,0xD,0xD, +0xC,0xE,0x6,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x30,0xB8,0x98,0x98, +0xD8,0xF8,0x70,0x0,0x0,0x0,0x0,0x0}, // s + +{0x0,0x0,0x0,0x0,0x0,0xC,0x3F,0x7F, +0xC,0xC,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xF0,0xF8, +0x18,0x18,0x0,0x0,0x0,0x0,0x0,0x0}, // t + +{0x0,0x0,0x0,0x0,0xF,0xF,0x0,0x0, +0x0,0x0,0xF,0xF,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0xF0,0xF8,0x18,0x18, +0x18,0x30,0xF8,0xF8,0x0,0x0,0x0,0x0}, // u + +{0x0,0x0,0x0,0x0,0x0,0xE,0xF,0x1, +0x0,0x1,0xF,0xE,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xC0,0xF8, +0x38,0xF8,0xC0,0x0,0x0,0x0,0x0,0x0}, // v + +{0x0,0x0,0xC,0xF,0x3,0x0,0x1,0xF, +0xE,0xF,0x1,0x0,0x3,0xF,0xC,0x0, +0x0,0x0,0x0,0xC0,0xF8,0x38,0xF8,0xC0, +0x0,0xC0,0xF8,0x38,0xF8,0xC0,0x0,0x0}, // w + +{0x0,0x0,0x0,0x0,0x0,0xC,0xE,0x7, +0x1,0x7,0xE,0xC,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x18,0x38,0xF0, +0xC0,0xF0,0x38,0x18,0x0,0x0,0x0,0x0}, // x + +{0x0,0x0,0x0,0x0,0xC,0xF,0x3,0x0, +0x0,0x0,0x3,0xF,0xC,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x3,0xE3,0xFF, +0x3E,0xF8,0xE0,0x0,0x0,0x0,0x0,0x0}, // y + +{0x0,0x0,0x0,0x0,0x0,0x0,0xC,0xC, +0xC,0xD,0xF,0xF,0xC,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x18,0x78, +0xF8,0xD8,0x98,0x18,0x18,0x0,0x0,0x0}, //z + +{0x0,0x0,0x0,0x0,0x3,0x3,0x7F,0xFC, +0xC0,0xC0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0xFC,0xFE, +0x6,0x6,0x0,0x0,0x0,0x0,0x0,0x0}, // { + +{0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xFF, +0xFF,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xFF, +0xFF,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, // | + +{0x0,0x0,0x0,0x0,0x0,0x0,0xC0,0xC0, +0xFC,0x7F,0x3,0x3,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x6,0x6, +0xFE,0xFC,0x0,0x0,0x0,0x0,0x0,0x0}, // } + +{0x0,0x0,0x0,0x0,0x18,0x30,0x30,0x30, +0x38,0x18,0x18,0x18,0x30,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0}, // ~ +}; + + +static uint8_t display_buff[1024]; +static uint8_t display_buff_16x16[32]; +static uint16_t buff_end =0; +static uint8_t disp_buff1[512]; +static uint8_t disp_buff2[512]; +static uint8_t temp_buff1[512]; +static uint8_t temp_buff2[512]; +//static uint8_t display_buff[256]; static uint8_t temp_buff[256]; static const uint8_t DISPLAY_BUFF_START = 0; static const uint8_t DISPLAY_BUFF_END = 31; -static uint8_t buff_end = 0; +//static uint8_t buff_end = 0; static const uint32_t MAX_STRING_LENGTH = 32; static char str[MAX_STRING_LENGTH]; @@ -596,6 +1083,256 @@ } } +/********************************************************************/ +void get_16x16_character(char c, uint8_t *char_buff) +{ + uint8_t idx; + + for(idx = 0; idx < 32; idx++) + { + //get byte of char from map & store in buffer + char_buff[idx] = Aerial_bold_font_16x16[c - 0x20][idx]; + } +} + + +void print_char_16x16(Max7219 *p_display, uint16_t position, char c) +{ + + uint8_t idx; + uint8_t char_buff[32]; + uint8_t device; + uint16_t buff_start = position; + + get_16x16_character(c, char_buff); + + for(device =1;device<5;device++) + { + for(idx = 0; idx < 8; idx++) + { + p_display->write_digit(device, idx+1,char_buff[idx+(device-1)*8]); + + //get index for display buffer, keeps image of display for shifting + buff_end = (device - 1) * 8 + idx + buff_start; + + //wrap buff back around + if(buff_end > 1023) + { + buff_end -= 1023; + } + display_buff[buff_end] = char_buff[idx+(device-1)*8]; + + } + } + buff_end +=1; + //Arrange single character data in upper and lower row + for(idx=0;idx<16;idx++) + { + disp_buff1[idx] = display_buff[idx]; + disp_buff2[idx] = display_buff[idx+16]; + } + +} +void print_string_16x16(Max7219 *p_display, char *s) +{ + uint16_t idx=0,idy=0; + + while(s[idx] != '\0') + { + print_char_16x16(p_display, (idx*32), s[idx]); + idx++; + wait_ms(200); + } + + //Arrange character data in upper and lower row data + for (idy=0;idy<buff_end/32;idy++) + { + for(idx=0;idx<16;idx++) + { + disp_buff1[idx+16*idy] = display_buff[idx+32*idy]; + disp_buff2[idx+16*idy] = display_buff[idx+16+32*idy]; + } + } + + // Clear buffer + for(idx=0;idx<1024;idx++) + display_buff[idx] = 0; + +} + +//********************************************************************* +void shift_display_right_16x16(Max7219 *p_display, uint8_t count, uint8_t delay) +{ + uint16_t idx, idy; + uint8_t position; + int device; + + for(idx = 0; idx < count; idx++) + { + + for(idy = 0; idy < buff_end/2; idy++) + { + if(idy ==(buff_end/2-1)) + { + temp_buff1[0] = disp_buff1[(buff_end/2) - 1]; + temp_buff2[0] = disp_buff2[(buff_end/2) - 1]; + + } + else + { + temp_buff1[idy + 1] = disp_buff1[idy]; + temp_buff2[idy + 1] = disp_buff2[idy]; + } + + } + for(idy = 0; idy < buff_end/2; idy++) + { + disp_buff1[idy] = temp_buff1[idy]; + disp_buff2[idy] = temp_buff2[idy]; + + } + for(idy = 0; idy < 16; idy++) + { + display_buff_16x16[idy] = disp_buff1[idy]; + display_buff_16x16[idy+16] = disp_buff2[idy]; + } + + position = 0; + for(device =1;device<5;device++) + { + for(idy = 0; idy < 8; idy++) + { + p_display->write_digit(device, idy+1,display_buff_16x16[idy+position]); + } + position+=8; + } + wait_ms(delay); + } + +} + +void shift_display_left_16x16(Max7219 *p_display, uint8_t count, uint8_t delay) +{ + uint16_t idx, idy; + uint8_t position; + int device; + + for(idx = 0; idx < count; idx++) + { + for(idy = 0; idy < buff_end/2; idy++) + { + if(idy == 0) + { + temp_buff1[buff_end/2-1] = disp_buff1[idy]; + temp_buff2[buff_end/2-1] = disp_buff2[idy]; + + } + else + { + temp_buff1[idy - 1] = disp_buff1[idy]; + temp_buff2[idy - 1] = disp_buff2[idy]; + + } + + } + for(idy = 0; idy < buff_end/2; idy++) + { + disp_buff1[idy] = temp_buff1[idy]; + disp_buff2[idy] = temp_buff2[idy]; + + } + for(idy = 0; idy < 16; idy++) + { + display_buff_16x16[idy] = disp_buff1[idy]; + display_buff_16x16[idy+16] = disp_buff2[idy]; + } + position = 0; + for(device =1;device<5;device++) + { + for(idy = 0; idy < 8; idy++) + { + p_display->write_digit(device, idy+1,display_buff_16x16[idy+position]); + } + position+=8; + } + + wait_ms(delay); + } + +} + +//********************************************************************* +void demo_16x16(Max7219 *display, max7219_configuration_t display_config, bool endless_loop) +{ + uint8_t idx = 0; + + do + { + all_off(display); + + for(idx = 0x20; idx < 0x7F; idx++) + { + print_char_16x16(display, 0, (char) idx); + wait(0.25); + } + + all_on(display); + + for(idx = 0; idx < 16; idx++) + { + display_config.intensity = 15 - idx; + display->init_display(display_config); + wait_ms(50); + } + + for(idx = 0; idx < 16; idx++) + { + display_config.intensity = idx; + display->init_display(display_config); + wait_ms(100); + } + wait_ms(100); + all_off(display); + wait_ms(100); + + all_on(display); + wait_ms(500); + print_char_16x16(display,0,'A'); + wait_ms(500); + shift_display_right_16x16(display, 32, 100); + shift_display_left_16x16(display, 32, 100); + all_off(display); + wait_ms(100); + + print_string_16x16(display, "Maxim"); + wait_ms(500); + shift_display_right_16x16(display, 32, 100); + shift_display_left_16x16(display, 32, 100); + wait_ms(100); + } + while(endless_loop); +} + +//********************************************************************* +void endless_scroll_display_16x16(Max7219 *display, uint32_t scroll_right) +{ + if(scroll_right) + { + printf("\nScrolling Right\n"); + while(1) + { + shift_display_right_16x16(display, 1, 100); + } + } + else + { + printf("\nScrolling Left\n"); + while(1) + { + shift_display_left_16x16(display, 1, 100); + } + } +} //********************************************************************* uint32_t print_menu(void) @@ -603,13 +1340,13 @@ uint32_t user_input; printf("\nPlease select an option below:\n"); - printf("%t1. Set Brightness\n"); - printf("%t2. Print a characther to given position\n"); - printf("%t3. Print a string to position\n");//TODO fix this case - printf("%t4. Shift display given number of position and direction\n"); //TODO fix this case - printf("%t5. Clear display\n"); - printf("%t6. Run the Demo Rotuine\n"); - printf("%t7. Run the Demo Rotuine In Endless Loop\n"); + printf("%t1. Select font\n"); + printf("%t2. Set Brightness\n"); + printf("%t3. Print a character to given position\n"); + printf("%t4. Print a string to position\n"); + printf("%t5. Shift display given number of position and direction\n"); + printf("%t6. Clear display\n"); + printf("%t7. Run the Demo Routine\n"); printf("%t8. Scroll Display In Endless Loop, left or right\n"); printf("%t9. Quit\n\n"); @@ -630,7 +1367,7 @@ //get user input fgets(str, MAX_STRING_LENGTH, stdin); - + //Remove trailing newline and CR, if there. if((strlen(str) > 0 ) && (str[strlen(str) - 1] == 0x0A) && (str[strlen(str) - 2] == 0x0D)) { @@ -663,8 +1400,9 @@ printf(msg); //get user input + fflush(stdin); fgets(str, 4, stdin); - + fflush(stdin); //Remove trailing newline and CR, if there. if((strlen(str) > 0 ) && (str[strlen(str) - 1] == 0x0A) && (str[strlen(str) - 2] == 0x0D)) { @@ -701,3 +1439,4 @@ return(str); } +