Alphanumeric display for iHvZ

Revision:
0:410a1870af10
Child:
1:d5692deaa688
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/AlphaNumDisplay.cpp	Sat Dec 11 22:33:15 2010 +0000
@@ -0,0 +1,76 @@
+#include "mbed.h"
+#include "AlphaNumDisplay.hpp"
+
+unsigned char AlphaNumDisplay::m_alphadisplay[][11]= { // < Table of symbols
+        {0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0 }, // 0
+        {1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1 }, // 1
+        {0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0 }, // 2
+        {0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1 }, // 3
+        {1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1 }, // 4
+        {0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1 }, // 5
+        {0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1 }, // 6
+        {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0 }, // 7
+        {0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1 }, // 8
+        {0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1 }, // 9
+        {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, // blank
+        {0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1 }, // A
+        {1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1 }, // B
+        {0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1 }, // C
+        {1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1 }, // D
+        {0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1 }, // E
+        {0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1 }, // F
+        {0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1 }, // G
+        {1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1 }, // H
+        {0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1 }, // I
+        {1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1 }, // J
+        {1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1 }, // K
+        {1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1 }, // L
+        {0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1 }, // M
+        {1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1 }, // N
+        {0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1 }, // O
+        {0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1 }, // P
+        {0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1 }, // Q
+        {0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1 }, // R
+        {0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1 }, // S
+        {0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1 }, // T
+        {1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1 }, // U
+        {1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1 }, // V
+        {1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1 }, // W
+        {1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0 }, // X
+        {1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1 }, // Y
+        {0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0 }, // Z
+        {1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0 }, // *
+        {1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0 }  // check mark   
+    };
+    
+    AlphaNumDisplay::AlphaNumDisplay(PinName HT = p13, PinName HM = p10, PinName HB = p8,
+        PinName VTL = p11, PinName VBL = p9, PinName VTM = p15, PinName VBM = p6, 
+        PinName VTR = p14, PinName VBR = p5, PinName DTL = p12, PinName DTR = p7)
+    : m_HTop(HT), m_HMiddle(HM), m_HBottom(HB), m_VTopLeft(VTL), m_VBottomLeft(VBL),
+        m_VTopMiddle(VTM),  m_VBottomMiddle(VBM),  m_VTopRight(VTR),  m_VBottomRight(VBR),
+        m_DTopLeft(DTL), m_DTopRight(DTR) 
+    {
+    }
+      
+    void AlphaNumDisplay::DisplayChar(unsigned char c) {
+        unsigned char index = ALPHA_NUM_CLEAR_I;
+        if(c == ALPHA_NUM_CHECK) index = ALPHA_NUM_CHECK_I;
+        if(c == ALPHA_NUM_CLEAR) index = ALPHA_NUM_CLEAR_I;
+        if(c == ALPHA_NUM_STAR)  index = ALPHA_NUM_STAR_I;
+        if(c < 10)               index = c + ALPHA_NUM_ZERO_I;
+        if(c >= '0' && c <= '9') index = c - '0' + ALPHA_NUM_ZERO_I;
+        if(c >= 'a' && c <= 'z') index = c - 'a' + ALPHA_NUM_A_I;
+        if(c >= 'A' && c <= 'Z') index = c - 'A' + ALPHA_NUM_A_I;
+    
+        m_HTop = AlphaNumDisplay::m_alphadisplay[index][0];
+        m_HMiddle = AlphaNumDisplay::m_alphadisplay[index][1];
+        m_HBottom = AlphaNumDisplay::m_alphadisplay[index][2];
+        m_VTopLeft = AlphaNumDisplay::m_alphadisplay[index][3];
+        m_VBottomLeft = AlphaNumDisplay::m_alphadisplay[index][4];
+        m_VTopMiddle = AlphaNumDisplay::m_alphadisplay[index][5];
+        m_VBottomMiddle = AlphaNumDisplay::m_alphadisplay[index][6];
+        m_VTopRight = AlphaNumDisplay::m_alphadisplay[index][7];
+        m_VBottomRight = AlphaNumDisplay::m_alphadisplay[index][8];
+        m_DTopLeft = AlphaNumDisplay::m_alphadisplay[index][9];
+        m_DTopRight = AlphaNumDisplay::m_alphadisplay[index][10];        
+    }
\ No newline at end of file