lib_LCD_oem_example

Dependencies:   lib_LCD_oem mbed

Revision:
0:c8a2590c2f2e
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Tue Jun 06 14:01:09 2017 +0000
@@ -0,0 +1,204 @@
+#include "mbed.h"
+#include "lib_LCD_oem_ELCD.h"
+
+bool acolade = false;
+bool escape = false;
+
+LCD_OEM LCD;
+Serial pc(USBTX, USBRX);
+
+int X_pos = 0;
+int Y_pos = 0;
+
+void reception_serie(void);
+
+int main() 
+{
+    pc.attach(&reception_serie);
+    LCD.shift_line_cursor();
+//    pc.printf("X_pos %2d Y_pos %d\r\n", LCD.get_X_position_cursor(), LCD.get_Y_position_cursor());
+
+    while(1) 
+    {
+    }
+}
+
+void reception_serie(void)
+{
+    char c = pc.getc();
+    char l1 = 0,l2 = 0,l3 = 0,l4 = 0,l5 = 0,l6 = 0,l7 = 0,l8 = 0;
+    switch(c)
+    {
+        case 27:
+            acolade = true;
+        break;
+        case 91:
+            if(acolade) escape = true;
+        break;
+        case 'A':
+            if(acolade && escape)
+            {
+//                X_pos = LCD.get_X_position_cursor();
+//                Y_pos = LCD.get_Y_position_cursor() - 1;
+//                LCD.set_position_cursor(X_pos,Y_pos);
+                LCD.set_position_cursor(LCD.get_X_position_cursor(), LCD.get_Y_position_cursor() - 1);
+                pc.printf("X_pos %2d Y_pos %d\r\n", LCD.get_X_position_cursor(), LCD.get_Y_position_cursor());
+            }else{
+                pc.printf("%d\r\n",c);
+                LCD.print((int)c);
+                acolade = false;
+                escape = false;
+            }
+        break;
+        case 'B':
+            if(acolade && escape)
+            {
+//                X_pos = LCD.get_X_position_cursor();
+//                Y_pos = LCD.get_Y_position_cursor() + 1;
+//                LCD.set_position_cursor(X_pos,Y_pos);
+                LCD.set_position_cursor(LCD.get_X_position_cursor(), LCD.get_Y_position_cursor() + 1);
+                pc.printf("X_pos %2d Y_pos %d\r\n", LCD.get_X_position_cursor(), LCD.get_Y_position_cursor());
+            }else{
+                pc.printf("%d\r\n",c);
+                LCD.print((int)c);
+                acolade = false;
+                escape = false;
+            }
+        break;
+        case 'C':
+            if(acolade && escape)
+            {
+//                X_pos = LCD.get_X_position_cursor() + 1;
+//                Y_pos = LCD.get_Y_position_cursor();
+//                LCD.set_position_cursor(X_pos,Y_pos);
+                LCD.set_position_cursor(LCD.get_X_position_cursor() + 1, LCD.get_Y_position_cursor());
+                pc.printf("X_pos %2d Y_pos %d\r\n", LCD.get_X_position_cursor(), LCD.get_Y_position_cursor());
+            }else{
+                pc.printf("%d\r\n",c);
+                LCD.print((int)c);
+                acolade = false;
+                escape = false;
+            }
+        break;
+        case 'D':
+            if(acolade && escape)
+            {
+//                X_pos = LCD.get_X_position_cursor() - 1;
+//                Y_pos = LCD.get_Y_position_cursor();
+//                LCD.set_position_cursor(X_pos,Y_pos);
+                LCD.set_position_cursor(LCD.get_X_position_cursor() - 1, LCD.get_Y_position_cursor());
+                pc.printf("X_pos %2d Y_pos %d\r\n", LCD.get_X_position_cursor(), LCD.get_Y_position_cursor());
+            }else{
+                pc.printf("%d\r\n",c);
+                LCD.print((int)c);
+                acolade = false;
+                escape = false;
+            }
+        break;
+        case 'w':
+            for(int i=0;i<4;i++)
+            {
+                LCD.set_position_cursor(0,i);
+                for(int j=8;j<16;j++)
+                {
+                    LCD.print("%c", j);
+                    pc.printf("X_pos %2d Y_pos %d\r\n", LCD.get_X_position_cursor(), LCD.get_Y_position_cursor());
+//                    wait(0.25);
+                }
+            }
+            
+            for(int k=8;k<16;k++)
+            {
+                l1 = l2 = l3 = l3 = l4 = l5 = l6 = l7 = l8 = 0;
+                for(int i=0;i<8;i++)
+                {
+                    for(int j=1;j<32;j*=2)
+                    {
+                        if(i == 0)      l1 += j;
+                        else if(i == 1) l2 += j;
+                        else if(i == 2) l3 += j;
+                        else if(i == 3) l4 += j;
+                        else if(i == 4) l5 += j;
+                        else if(i == 5) l6 += j;
+                        else if(i == 6) l7 += j;
+                        else if(i == 7) l8 += j;
+                        LCD.define_caractere(k,l1,l2,l3,l4,l5,l6,l7,l8);
+//                        wait(0.1);
+                    }
+                }
+            }
+            for(int k=8;k<16;k++)
+            {
+                l1 = l2 = l3 = l3 = l4 = l5 = l6 = l7 = l8 = 31;
+                for(int i=0;i<8;i++)
+                {
+                    for(int j=1;j<32;j*=2)
+                    {
+                        if(i == 0)      l1 -= j;
+                        else if(i == 1) l2 -= j;
+                        else if(i == 2) l3 -= j;
+                        else if(i == 3) l4 -= j;
+                        else if(i == 4) l5 -= j;
+                        else if(i == 5) l6 -= j;
+                        else if(i == 6) l7 -= j;
+                        else if(i == 7) l8 -= j;
+                        LCD.define_caractere(k,l1,l2,l3,l4,l5,l6,l7,l8);
+//                        wait(0.1);
+                    }
+                }
+            }
+        break;
+        case 'x':
+//            LCD.set_position_cursor(0,0);
+            LCD.define_and_print_caractere(8,1,2,4,8,8,4,2,1);
+            LCD.define_caractere(8,16,8,4,2,2,4,8,16);
+            LCD.print((char)8);
+//            LCD.print((char)8);
+//            LCD.define_caractere(8,1,2,4,8,8,4,2,1);
+/*            for(int k=8;k<16;k++)
+            {
+                l1 = l2 = l3 = l3 = l4 = l5 = l6 = l7 = l8 = 0;
+                for(int i=0;i<8;i++)
+                {
+                    for(int j=1;j<32;j*=2)
+                    {
+                        if(i == 0)      l1 += j;
+                        else if(i == 1) l2 += j;
+                        else if(i == 2) l3 += j;
+                        else if(i == 3) l4 += j;
+                        else if(i == 4) l5 += j;
+                        else if(i == 5) l6 += j;
+                        else if(i == 6) l7 += j;
+                        else if(i == 7) l8 += j;
+                        LCD.define_and_print_caractere(k,l1,l2,l3,l4,l5,l6,l7,l8);
+//                        wait(0.1);
+                    }
+                }
+            }
+            for(int k=8;k<16;k++)
+            {
+                l1 = l2 = l3 = l3 = l4 = l5 = l6 = l7 = l8 = 31;
+                for(int i=0;i<8;i++)
+                {
+                    for(int j=1;j<32;j*=2)
+                    {
+                        if(i == 0)      l1 -= j;
+                        else if(i == 1) l2 -= j;
+                        else if(i == 2) l3 -= j;
+                        else if(i == 3) l4 -= j;
+                        else if(i == 4) l5 -= j;
+                        else if(i == 5) l6 -= j;
+                        else if(i == 6) l7 -= j;
+                        else if(i == 7) l8 -= j;
+                        LCD.define_and_print_caractere(k,l1,l2,l3,l4,l5,l6,l7,l8);
+//                        wait(0.1);
+                    }
+                }
+            }
+*/        break;
+        default:
+            LCD.print(c);
+            pc.printf("X_pos %2d Y_pos %d\r\n", LCD.get_X_position_cursor(), LCD.get_Y_position_cursor());
+        break;
+    }
+}