Demo for MAXREFDES99

Dependencies:   MAX7219 mbed

Revision:
9:3c6d6c856e3d
Parent:
8:a6a0c9e280ae
--- a/maxrefdes99.cpp	Tue May 24 08:40:07 2016 +0000
+++ b/maxrefdes99.cpp	Wed May 25 21:32:57 2016 +0000
@@ -37,103 +37,104 @@
 
 //5x7 character bit map
 static const uint8_t font_5x7[95][6] = {
-    {0x00,0x00,0x00,0x00,0x00,0x00},    // SPACE
-    {0x00,0x00,0x00,0x4F,0x00,0x00},    // !
-    {0x00,0x00,0x07,0x00,0x07,0x00},    // "
-    {0x00,0x14,0x7F,0x14,0x7F,0x14},    // #
-    {0x00,0x24,0x2A,0x7F,0x2A,0x12},    // $
-    {0x00,0x23,0x13,0x08,0x64,0x62},    // %
-    {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,0x50,0x30,0x00,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,0x36,0x36,0x00,0x00,0x00},    // :
-    {0x00,0x56,0x36,0x00,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,0x30,0x49,0x79,0x41,0x3E},    // @
-    {0x00,0x7E,0x11,0x11,0x11,0x7E},    // 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,0x30,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,0x02,0x04,0x08,0x10,0x20},    // 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,0x50,0x48,0x48,0x30},    // 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,0x0C,0x52,0x52,0x52,0x3E},    // g
-    {0x00,0x7F,0x08,0x04,0x04,0x78},    // h
-    {0x00,0x00,0x44,0x7D,0x40,0x00},    // i
-    {0x00,0x20,0x40,0x44,0x3D,0x00},    // j
-    {0x00,0x7F,0x10,0x28,0x44,0x00},    // k
-    {0x00,0x00,0x41,0x7F,0x40,0x00},    // l
-    {0x00,0x78,0x04,0x58,0x44,0x78},    // m
-    {0x00,0x7C,0x08,0x04,0x04,0x78},    // n
-    {0x00,0x38,0x44,0x44,0x44,0x38},    // o
-    {0x00,0x7C,0x14,0x14,0x14,0x08},    // p
-    {0x00,0x08,0x14,0x14,0x18,0x7C},    // 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,0x0C,0x50,0x50,0x50,0x3C},    // y
-    {0x00,0x44,0x64,0x54,0x4C,0x44},    // z
-    {0x00,0x00,0x08,0x36,0x41,0x00},    // {
-    {0x00,0x00,0x00,0x7F,0x00,0x00},    // |
-    {0x00,0x00,0x41,0x36,0x08,0x00},    // }
-    {0x00,0x0C,0x02,0x0C,0x10,0x0C}     // ~
+    {0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, //SPACE
+    {0x00, 0x00, 0x00, 0xf2, 0x00, 0x00}, //!
+    {0x00, 0x00, 0xe0, 0x00, 0xe0, 0x00}, //"
+    {0x00, 0x28, 0xfe, 0x28, 0xfe, 0x28}, //#
+    {0x00, 0x24, 0x54, 0xfe, 0x54, 0x48}, //$
+    {0x00, 0xc4, 0xc8, 0x10, 0x26, 0x46}, //%
+    {0x00, 0x6c, 0x92, 0xaa, 0x44, 0x0a}, //&
+    {0x00, 0x00, 0xa0, 0xc0, 0x00, 0x00}, //'
+    {0x00, 0x00, 0x38, 0x44, 0x82, 0x00}, //(
+    {0x00, 0x00, 0x82, 0x44, 0x38, 0x00}, //)
+    {0x00, 0x28, 0x10, 0x7c, 0x10, 0x28}, //*
+    {0x00, 0x10, 0x10, 0x7c, 0x10, 0x10}, //+
+    {0x00, 0x00, 0x0a, 0x0c, 0x00, 0x00}, //,
+    {0x00, 0x10, 0x10, 0x10, 0x10, 0x10}, //-
+    {0x00, 0x00, 0x06, 0x06, 0x00, 0x00}, //.
+    {0x00, 0x04, 0x08, 0x10, 0x20, 0x40}, ///
+    {0x00, 0x7c, 0x8a, 0x92, 0xa2, 0x7c}, //0
+    {0x00, 0x00, 0x42, 0xfe, 0x02, 0x00}, //1
+    {0x00, 0x42, 0x86, 0x8a, 0x92, 0x62}, //2
+    {0x00, 0x84, 0x82, 0xa2, 0xd2, 0x8c}, //3
+    {0x00, 0x18, 0x28, 0x48, 0xfe, 0x08}, //4
+    {0x00, 0xe4, 0xa2, 0xa2, 0xa2, 0x9c}, //5
+    {0x00, 0x3c, 0x52, 0x92, 0x92, 0x0c}, //6
+    {0x00, 0x80, 0x8e, 0x90, 0xa0, 0xc0}, //7
+    {0x00, 0x6c, 0x92, 0x92, 0x92, 0x6c}, //8
+    {0x00, 0x60, 0x92, 0x92, 0x94, 0x78}, //9
+    {0x00, 0x6c, 0x6c, 0x00, 0x00, 0x00}, //:
+    {0x00, 0x6a, 0x6c, 0x00, 0x00, 0x00}, //;
+    {0x00, 0x10, 0x28, 0x44, 0x82, 0x00}, //<
+    {0x00, 0x28, 0x28, 0x28, 0x28, 0x28}, //=
+    {0x00, 0x00, 0x82, 0x44, 0x28, 0x10}, //>
+    {0x00, 0x40, 0x80, 0x8a, 0x90, 0x60}, //?
+    {0x00, 0x0c, 0x92, 0x9e, 0x82, 0x7c}, //@
+    {0x00, 0x7e, 0x88, 0x88, 0x88, 0x7e}, //A
+    {0x00, 0xfe, 0x92, 0x92, 0x92, 0x6c}, //B
+    {0x00, 0x7c, 0x82, 0x82, 0x82, 0x44}, //C
+    {0x00, 0xfe, 0x82, 0x82, 0x44, 0x38}, //D
+    {0x00, 0xfe, 0x92, 0x92, 0x92, 0x82}, //E
+    {0x00, 0xfe, 0x90, 0x90, 0x90, 0x80}, //F
+    {0x00, 0x7c, 0x82, 0x92, 0x92, 0x5e}, //G
+    {0x00, 0xfe, 0x10, 0x10, 0x10, 0xfe}, //H
+    {0x00, 0x00, 0x82, 0xfe, 0x82, 0x00}, //I
+    {0x00, 0x04, 0x02, 0x82, 0xfc, 0x80}, //J
+    {0x00, 0xfe, 0x10, 0x28, 0x44, 0x82}, //K
+    {0x00, 0xfe, 0x02, 0x02, 0x02, 0x02}, //L
+    {0x00, 0xfe, 0x40, 0x30, 0x40, 0xfe}, //M
+    {0x00, 0xfe, 0x20, 0x10, 0x08, 0xfe}, //N
+    {0x00, 0x7c, 0x82, 0x82, 0x82, 0x7c}, //O
+    {0x00, 0xfe, 0x90, 0x90, 0x90, 0x60}, //P
+    {0x00, 0x7c, 0x82, 0x8a, 0x84, 0x7a}, //Q
+    {0x00, 0xfe, 0x90, 0x98, 0x94, 0x62}, //R
+    {0x00, 0x62, 0x92, 0x92, 0x92, 0x8c}, //S
+    {0x00, 0x80, 0x80, 0xfe, 0x80, 0x80}, //T
+    {0x00, 0xfc, 0x02, 0x02, 0x02, 0xfc}, //U
+    {0x00, 0xf8, 0x04, 0x02, 0x04, 0xf8}, //V
+    {0x00, 0xfc, 0x02, 0x0c, 0x02, 0xfc}, //W
+    {0x00, 0xc6, 0x28, 0x10, 0x28, 0xc6}, //X
+    {0x00, 0xe0, 0x10, 0x0e, 0x10, 0xe0}, //Y
+    {0x00, 0x86, 0x8a, 0x92, 0xa2, 0xc2}, //Z
+    {0x00, 0x00, 0xfe, 0x82, 0x82, 0x00}, //[
+    {0x00, 0x40, 0x20, 0x10, 0x08, 0x04}, //backslash
+    {0x00, 0x00, 0x82, 0x82, 0xfe, 0x00}, //]
+    {0x00, 0x20, 0x40, 0x80, 0x40, 0x20}, //^
+    {0x00, 0x02, 0x02, 0x02, 0x02, 0x02}, //_
+    {0x00, 0x00, 0x80, 0x40, 0x20, 0x00}, //`
+    {0x00, 0x04, 0x2a, 0x2a, 0x2a, 0x1e}, //a
+    {0x00, 0xfe, 0x0a, 0x12, 0x12, 0x0c}, //b
+    {0x00, 0x1c, 0x22, 0x22, 0x22, 0x04}, //c
+    {0x00, 0x1c, 0x22, 0x22, 0x12, 0xfe}, //d
+    {0x00, 0x1c, 0x2a, 0x2a, 0x2a, 0x18}, //e
+    {0x00, 0x10, 0x7e, 0x90, 0x80, 0x40}, //f
+    {0x00, 0x30, 0x4a, 0x4a, 0x4a, 0x7c}, //g
+    {0x00, 0xfe, 0x10, 0x20, 0x20, 0x1e}, //h
+    {0x00, 0x00, 0x22, 0xbe, 0x02, 0x00}, //i
+    {0x00, 0x04, 0x02, 0x22, 0xbc, 0x00}, //j
+    {0x00, 0xfe, 0x08, 0x14, 0x22, 0x00}, //k
+    {0x00, 0x00, 0x82, 0xfe, 0x02, 0x00}, //l
+    {0x00, 0x1e, 0x20, 0x1a, 0x22, 0x1e}, //m
+    {0x00, 0x3e, 0x10, 0x20, 0x20, 0x1e}, //n
+    {0x00, 0x1c, 0x22, 0x22, 0x22, 0x1c}, //o
+    {0x00, 0x3e, 0x28, 0x28, 0x28, 0x10}, //p
+    {0x00, 0x10, 0x28, 0x28, 0x18, 0x3e}, //q
+    {0x00, 0x3e, 0x10, 0x20, 0x20, 0x10}, //r
+    {0x00, 0x12, 0x2a, 0x2a, 0x2a, 0x04}, //s
+    {0x00, 0x20, 0xfc, 0x22, 0x02, 0x04}, //t
+    {0x00, 0x3c, 0x02, 0x02, 0x04, 0x3e}, //u
+    {0x00, 0x38, 0x04, 0x02, 0x04, 0x38}, //v
+    {0x00, 0x3c, 0x02, 0x0c, 0x02, 0x3c}, //w
+    {0x00, 0x22, 0x14, 0x08, 0x14, 0x22}, //x
+    {0x00, 0x30, 0x0a, 0x0a, 0x0a, 0x3c}, //y
+    {0x00, 0x22, 0x26, 0x2a, 0x32, 0x22}, //z
+    {0x00, 0x00, 0x10, 0x6c, 0x82, 0x00}, //{
+    {0x00, 0x00, 0x00, 0xfe, 0x00, 0x00}, //|
+    {0x00, 0x00, 0x82, 0x6c, 0x10, 0x00}, //}
+    {0x00, 0x30, 0x40, 0x30, 0x08, 0x30}  //~
 };
 
+
 /*******************************************************************************
 * 16*16 character bit map for Aerial bold fonts
 * These font data taken from the rinkydinkelectronic.com 
@@ -1122,26 +1123,6 @@
 
 
 //*********************************************************************
-void get_5x7_character(char c, uint8_t *char_buff)
-{
-    uint16_t temp_data;
-    uint8_t idx, idy;
-
-    for(idx = 0; idx < 6; idx++) 
-    {
-        //get byte of char from map and flip it, bit 0 becomes bit 7 and so on
-        temp_data = (0x00FF & (font_5x7[c - 0x20][idx]));
-        for(idy = 0; idy < 8; idy++) 
-        {
-            temp_data = (temp_data | (((temp_data & (1 << idy)) << (15 - (idy*2)))));
-        }
-        temp_data = ((temp_data >> 8) & 0x00FF);
-        
-        char_buff[idx] = ((uint8_t) temp_data);
-    }
-}
-
-//*********************************************************************
 void print_char(Max7219 *p_display, uint8_t position99, char c)
 {
     uint8_t idx;
@@ -1151,7 +1132,7 @@
     uint8_t wrap_idx;
     uint8_t buff_start = position99;
     
-    get_5x7_character(c, char_buff);
+    memcpy(char_buff, &(font_5x7[c - 0x20][0]), 6);
 
     if(position99 < 33)
     {