SMART CLEO Dotmartix

Files at this revision

API Documentation at this revision

Comitter:
SMART_CLEO
Date:
Thu Sep 28 02:12:40 2017 +0000
Commit message:
SMART_CLEO

Changed in this revision

font_5x7.h Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed-os.lib Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/font_5x7.h	Thu Sep 28 02:12:40 2017 +0000
@@ -0,0 +1,96 @@
+unsigned char font[95][5] = {               /* 5x7 ASCII character font */
+    {0x00, 0x00, 0x00, 0x00, 0x00},     // 0x20 space
+    {0x00, 0x00, 0x4f, 0x00, 0x00},     // 0x21 !
+    {0x00, 0x07, 0x00, 0x07, 0x00},     // 0x22 "
+    {0x14, 0x7f, 0x14, 0x7f, 0x14},     // 0x23 #
+    {0x24, 0x2a, 0x7f, 0x2a, 0x12},     // 0x24 $
+    {0x23, 0x13, 0x08, 0x64, 0x62},     // 0x25 %
+    {0x36, 0x49, 0x55, 0x22, 0x50},     // 0x26 &
+    {0x00, 0x05, 0x03, 0x00, 0x00},     // 0x27 '
+    {0x00, 0x1c, 0x22, 0x41, 0x00},     // 0x28 (
+    {0x00, 0x41, 0x22, 0x1c, 0x00},     // 0x29 )
+    {0x14, 0x08, 0x3e, 0x08, 0x14},     // 0x2a *
+    {0x08, 0x08, 0x3e, 0x08, 0x08},     // 0x2b +
+    {0x00, 0x50, 0x30, 0x00, 0x00},     // 0x2c ,
+    {0x08, 0x08, 0x08, 0x08, 0x08},     // 0x2d -
+    {0x00, 0x60, 0x60, 0x00, 0x00},     // 0x2e .
+    {0x20, 0x10, 0x08, 0x04, 0x02},     // 0x2f /
+    {0x3e, 0x51, 0x49, 0x45, 0x3e},     // 0x30 0
+    {0x00, 0x42, 0x7f, 0x40, 0x00},     // 0x31 1
+    {0x42, 0x61, 0x51, 0x49, 0x46},     // 0x32 2
+    {0x21, 0x41, 0x45, 0x4b, 0x31},     // 0x33 3
+    {0x18, 0x14, 0x12, 0x7f, 0x10},     // 0x34 4
+    {0x27, 0x45, 0x45, 0x45, 0x39},     // 0x35 5
+    {0x3c, 0x4a, 0x49, 0x49, 0x30},     // 0x36 6
+    {0x01, 0x71, 0x09, 0x05, 0x03},     // 0x37 7
+    {0x36, 0x49, 0x49, 0x49, 0x36},     // 0x38 8
+    {0x06, 0x49, 0x49, 0x29, 0x1e},     // 0x39 9
+    {0x00, 0x36, 0x36, 0x00, 0x00},     // 0x3a :
+    {0x00, 0x56, 0x36, 0x00, 0x00},     // 0x3b ;
+    {0x08, 0x14, 0x22, 0x41, 0x00},     // 0x3c <
+    {0x14, 0x14, 0x14, 0x14, 0x14},     // 0x3d =
+    {0x00, 0x41, 0x22, 0x14, 0x08},     // 0x3e >
+    {0x02, 0x01, 0x51, 0x09, 0x06},     // 0x3f ?
+    {0x32, 0x49, 0x79, 0x41, 0x3e},     // 0x40 @
+    {0x7e, 0x11, 0x11, 0x11, 0x7e},     // 0x41 A
+    {0x7f, 0x49, 0x49, 0x49, 0x36},     // 0x42 B
+    {0x3e, 0x41, 0x41, 0x41, 0x22},     // 0x43 C
+    {0x7f, 0x41, 0x41, 0x22, 0x1c},     // 0x44 D
+    {0x7f, 0x49, 0x49, 0x49, 0x41},     // 0x45 E
+    {0x7f, 0x09, 0x09, 0x09, 0x01},     // 0x46 F
+    {0x3e, 0x41, 0x49, 0x49, 0x7a},     // 0x47 G
+    {0x7f, 0x08, 0x08, 0x08, 0x7f},     // 0x48 H
+    {0x00, 0x41, 0x7f, 0x41, 0x00},     // 0x49 I
+    {0x20, 0x40, 0x41, 0x3f, 0x01},     // 0x4a J
+    {0x7f, 0x08, 0x14, 0x22, 0x41},     // 0x4b K
+    {0x7f, 0x40, 0x40, 0x40, 0x40},     // 0x4c L
+    {0x7f, 0x02, 0x0c, 0x02, 0x7f},     // 0x4d M
+    {0x7f, 0x04, 0x08, 0x10, 0x7f},     // 0x4e N
+    {0x3e, 0x41, 0x41, 0x41, 0x3e},     // 0x4f O
+    {0x7f, 0x09, 0x09, 0x09, 0x06},     // 0x50 P
+    {0x3e, 0x41, 0x51, 0x21, 0x5e},     // 0x51 Q
+    {0x7f, 0x09, 0x19, 0x29, 0x46},     // 0x52 R
+    {0x26, 0x49, 0x49, 0x49, 0x32},     // 0x53 S
+    {0x01, 0x01, 0x7f, 0x01, 0x01},     // 0x54 T
+    {0x3f, 0x40, 0x40, 0x40, 0x3f},     // 0x55 U
+    {0x1f, 0x20, 0x40, 0x20, 0x1f},     // 0x56 V
+    {0x3f, 0x40, 0x38, 0x40, 0x3f},     // 0x57 W
+    {0x63, 0x14, 0x08, 0x14, 0x63},     // 0x58 X
+    {0x07, 0x08, 0x70, 0x08, 0x07},     // 0x59 Y
+    {0x61, 0x51, 0x49, 0x45, 0x43},     // 0x5a Z
+    {0x00, 0x7f, 0x41, 0x41, 0x00},     // 0x5b [
+    {0x02, 0x04, 0x08, 0x10, 0x20},     // 0x5c (\)
+    {0x00, 0x41, 0x41, 0x7f, 0x00},     // 0x5d ]
+    {0x04, 0x02, 0x01, 0x02, 0x04},     // 0x5e ^
+    {0x40, 0x40, 0x40, 0x40, 0x40},     // 0x5f _
+    {0x00, 0x01, 0x02, 0x04, 0x00},     // 0x60 `
+    {0x20, 0x54, 0x54, 0x54, 0x78},     // 0x61 a
+    {0x7f, 0x48, 0x44, 0x44, 0x38},     // 0x62 b
+    {0x38, 0x44, 0x44, 0x44, 0x20},     // 0x63 c
+    {0x38, 0x44, 0x44, 0x48, 0x7f},     // 0x64 d
+    {0x38, 0x54, 0x54, 0x54, 0x18},     // 0x65 e
+    {0x08, 0x7e, 0x09, 0x01, 0x02},     // 0x66 f
+    {0x0c, 0x52, 0x52, 0x52, 0x3e},     // 0x67 g
+    {0x7f, 0x08, 0x04, 0x04, 0x78},     // 0x68 h
+    {0x00, 0x04, 0x7d, 0x00, 0x00},     // 0x69 i
+    {0x20, 0x40, 0x44, 0x3d, 0x00},     // 0x6a j
+    {0x7f, 0x10, 0x28, 0x44, 0x00},     // 0x6b k
+    {0x00, 0x41, 0x7f, 0x40, 0x00},     // 0x6c l
+    {0x7c, 0x04, 0x18, 0x04, 0x7c},     // 0x6d m
+    {0x7c, 0x08, 0x04, 0x04, 0x78},     // 0x6e n
+    {0x38, 0x44, 0x44, 0x44, 0x38},     // 0x6f o
+    {0x7c, 0x14, 0x14, 0x14, 0x08},     // 0x70 p
+    {0x08, 0x14, 0x14, 0x18, 0x7c},     // 0x71 q
+    {0x7c, 0x08, 0x04, 0x04, 0x08},     // 0x72 r
+    {0x48, 0x54, 0x54, 0x54, 0x20},     // 0x73 s
+    {0x04, 0x3f, 0x44, 0x40, 0x20},     // 0x74 t
+    {0x3c, 0x40, 0x40, 0x20, 0x7c},     // 0x75 u
+    {0x1c, 0x20, 0x40, 0x20, 0x1c},     // 0x76 v
+    {0x3c, 0x40, 0x30, 0x40, 0x3c},     // 0x77 w
+    {0x44, 0x28, 0x10, 0x28, 0x44},     // 0x78 x
+    {0x0c, 0x50, 0x50, 0x50, 0x3c},     // 0x79 y
+    {0x44, 0x64, 0x54, 0x4c, 0x44},     // 0x7a z
+    {0x00, 0x08, 0x36, 0x41, 0x00},     // 0x7b {
+    {0x00, 0x00, 0x77, 0x00, 0x00},     // 0x7c |
+    {0x00, 0x41, 0x36, 0x08, 0x00},     // 0x7d }
+    {0x08, 0x04, 0x08, 0x10, 0x08}};    // 0x7e ~
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Thu Sep 28 02:12:40 2017 +0000
@@ -0,0 +1,75 @@
+#include "mbed.h"
+#include "font_5x7.h"
+
+// I2C address
+int DoT_ADDR = 0x71<<1;
+
+I2C Dotmatrix(I2C_SDA, I2C_SCL);
+
+char Data_BUF[17] = {0, 0 ,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+
+void data_write(char *data, int len);
+void Command_Write(uint8_t com);
+void Dotmatrix_init(void);
+void char_data_write(char data);
+
+int main()
+{
+    uint8_t C_Data = 0x21;
+    Dotmatrix_init();
+    //data_write(Data_BUF, 17);
+    
+    while(1){
+        char_data_write(C_Data++);
+        if(C_Data == 0x80)
+            C_Data = 0x21;
+        wait(0.8);
+    }
+}
+
+void data_write(char *data, int len)
+{
+    data[0] = 0;
+    Dotmatrix.write(DoT_ADDR, data, len);
+}
+
+void Command_Write(char com)
+{
+    Dotmatrix.write(DoT_ADDR, &com, 1);
+}
+
+void Dotmatrix_init(void)
+{
+    // Internal System Clock enable
+    Command_Write((char)0x21);
+    // INT/ROW output pin Set -> ROW Driver output
+    Command_Write((char)0xA0);
+    // Dimming Set -> 15
+    Command_Write((char)0xEF);
+    // Blinking Set -> off
+    // Display Set -> on
+    Command_Write((char)0x81);
+}
+
+void char_data_write(char data)
+{
+    uint8_t read_c, i, j, c_buff[8] = {0, 0, 0, 0, 0, 0, 0, 0};
+    for(i=0; i<5; i++)
+    {
+        read_c = font[data-0x20][i];
+        if(read_c)
+        {
+            for(j=0; j<8; j++)
+            {
+                if(read_c & (0x80 >> j))
+                {
+                    c_buff[j] |= (0x01 << (i+1));
+                }
+            }
+        }
+    }
+    for(i=0; i<8; i++)
+        Data_BUF[i*2+1] = c_buff[i];
+
+    data_write(Data_BUF, 17);
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed-os.lib	Thu Sep 28 02:12:40 2017 +0000
@@ -0,0 +1,1 @@
+https://github.com/ARMmbed/mbed-os/#ca661f9d28526ca8f874b05432493a489c9671ea