lib_LCD_oem_example

Dependencies:   lib_LCD_oem mbed

Committer:
YSI
Date:
Tue Jun 06 14:19:10 2017 +0000
Revision:
1:1c9519da56a0
Parent:
0:c8a2590c2f2e
lib_LCD_oem_example

Who changed what in which revision?

UserRevisionLine numberNew contents of line
YSI 0:c8a2590c2f2e 1 #include "mbed.h"
YSI 0:c8a2590c2f2e 2 #include "lib_LCD_oem_ELCD.h"
YSI 0:c8a2590c2f2e 3
YSI 0:c8a2590c2f2e 4 bool acolade = false;
YSI 0:c8a2590c2f2e 5 bool escape = false;
YSI 0:c8a2590c2f2e 6
YSI 0:c8a2590c2f2e 7 LCD_OEM LCD;
YSI 0:c8a2590c2f2e 8 Serial pc(USBTX, USBRX);
YSI 0:c8a2590c2f2e 9
YSI 0:c8a2590c2f2e 10 int X_pos = 0;
YSI 0:c8a2590c2f2e 11 int Y_pos = 0;
YSI 0:c8a2590c2f2e 12
YSI 0:c8a2590c2f2e 13 void reception_serie(void);
YSI 0:c8a2590c2f2e 14
YSI 0:c8a2590c2f2e 15 int main()
YSI 0:c8a2590c2f2e 16 {
YSI 0:c8a2590c2f2e 17 pc.attach(&reception_serie);
YSI 0:c8a2590c2f2e 18 LCD.shift_line_cursor();
YSI 0:c8a2590c2f2e 19 // pc.printf("X_pos %2d Y_pos %d\r\n", LCD.get_X_position_cursor(), LCD.get_Y_position_cursor());
YSI 0:c8a2590c2f2e 20
YSI 0:c8a2590c2f2e 21 while(1)
YSI 0:c8a2590c2f2e 22 {
YSI 0:c8a2590c2f2e 23 }
YSI 0:c8a2590c2f2e 24 }
YSI 0:c8a2590c2f2e 25
YSI 0:c8a2590c2f2e 26 void reception_serie(void)
YSI 0:c8a2590c2f2e 27 {
YSI 0:c8a2590c2f2e 28 char c = pc.getc();
YSI 0:c8a2590c2f2e 29 char l1 = 0,l2 = 0,l3 = 0,l4 = 0,l5 = 0,l6 = 0,l7 = 0,l8 = 0;
YSI 0:c8a2590c2f2e 30 switch(c)
YSI 0:c8a2590c2f2e 31 {
YSI 0:c8a2590c2f2e 32 case 27:
YSI 0:c8a2590c2f2e 33 acolade = true;
YSI 0:c8a2590c2f2e 34 break;
YSI 0:c8a2590c2f2e 35 case 91:
YSI 0:c8a2590c2f2e 36 if(acolade) escape = true;
YSI 0:c8a2590c2f2e 37 break;
YSI 0:c8a2590c2f2e 38 case 'A':
YSI 0:c8a2590c2f2e 39 if(acolade && escape)
YSI 0:c8a2590c2f2e 40 {
YSI 0:c8a2590c2f2e 41 // X_pos = LCD.get_X_position_cursor();
YSI 0:c8a2590c2f2e 42 // Y_pos = LCD.get_Y_position_cursor() - 1;
YSI 0:c8a2590c2f2e 43 // LCD.set_position_cursor(X_pos,Y_pos);
YSI 0:c8a2590c2f2e 44 LCD.set_position_cursor(LCD.get_X_position_cursor(), LCD.get_Y_position_cursor() - 1);
YSI 0:c8a2590c2f2e 45 pc.printf("X_pos %2d Y_pos %d\r\n", LCD.get_X_position_cursor(), LCD.get_Y_position_cursor());
YSI 0:c8a2590c2f2e 46 }else{
YSI 0:c8a2590c2f2e 47 pc.printf("%d\r\n",c);
YSI 0:c8a2590c2f2e 48 LCD.print((int)c);
YSI 0:c8a2590c2f2e 49 acolade = false;
YSI 0:c8a2590c2f2e 50 escape = false;
YSI 0:c8a2590c2f2e 51 }
YSI 0:c8a2590c2f2e 52 break;
YSI 0:c8a2590c2f2e 53 case 'B':
YSI 0:c8a2590c2f2e 54 if(acolade && escape)
YSI 0:c8a2590c2f2e 55 {
YSI 0:c8a2590c2f2e 56 // X_pos = LCD.get_X_position_cursor();
YSI 0:c8a2590c2f2e 57 // Y_pos = LCD.get_Y_position_cursor() + 1;
YSI 0:c8a2590c2f2e 58 // LCD.set_position_cursor(X_pos,Y_pos);
YSI 0:c8a2590c2f2e 59 LCD.set_position_cursor(LCD.get_X_position_cursor(), LCD.get_Y_position_cursor() + 1);
YSI 0:c8a2590c2f2e 60 pc.printf("X_pos %2d Y_pos %d\r\n", LCD.get_X_position_cursor(), LCD.get_Y_position_cursor());
YSI 0:c8a2590c2f2e 61 }else{
YSI 0:c8a2590c2f2e 62 pc.printf("%d\r\n",c);
YSI 0:c8a2590c2f2e 63 LCD.print((int)c);
YSI 0:c8a2590c2f2e 64 acolade = false;
YSI 0:c8a2590c2f2e 65 escape = false;
YSI 0:c8a2590c2f2e 66 }
YSI 0:c8a2590c2f2e 67 break;
YSI 0:c8a2590c2f2e 68 case 'C':
YSI 0:c8a2590c2f2e 69 if(acolade && escape)
YSI 0:c8a2590c2f2e 70 {
YSI 0:c8a2590c2f2e 71 // X_pos = LCD.get_X_position_cursor() + 1;
YSI 0:c8a2590c2f2e 72 // Y_pos = LCD.get_Y_position_cursor();
YSI 0:c8a2590c2f2e 73 // LCD.set_position_cursor(X_pos,Y_pos);
YSI 0:c8a2590c2f2e 74 LCD.set_position_cursor(LCD.get_X_position_cursor() + 1, LCD.get_Y_position_cursor());
YSI 0:c8a2590c2f2e 75 pc.printf("X_pos %2d Y_pos %d\r\n", LCD.get_X_position_cursor(), LCD.get_Y_position_cursor());
YSI 0:c8a2590c2f2e 76 }else{
YSI 0:c8a2590c2f2e 77 pc.printf("%d\r\n",c);
YSI 0:c8a2590c2f2e 78 LCD.print((int)c);
YSI 0:c8a2590c2f2e 79 acolade = false;
YSI 0:c8a2590c2f2e 80 escape = false;
YSI 0:c8a2590c2f2e 81 }
YSI 0:c8a2590c2f2e 82 break;
YSI 0:c8a2590c2f2e 83 case 'D':
YSI 0:c8a2590c2f2e 84 if(acolade && escape)
YSI 0:c8a2590c2f2e 85 {
YSI 0:c8a2590c2f2e 86 // X_pos = LCD.get_X_position_cursor() - 1;
YSI 0:c8a2590c2f2e 87 // Y_pos = LCD.get_Y_position_cursor();
YSI 0:c8a2590c2f2e 88 // LCD.set_position_cursor(X_pos,Y_pos);
YSI 0:c8a2590c2f2e 89 LCD.set_position_cursor(LCD.get_X_position_cursor() - 1, LCD.get_Y_position_cursor());
YSI 0:c8a2590c2f2e 90 pc.printf("X_pos %2d Y_pos %d\r\n", LCD.get_X_position_cursor(), LCD.get_Y_position_cursor());
YSI 0:c8a2590c2f2e 91 }else{
YSI 0:c8a2590c2f2e 92 pc.printf("%d\r\n",c);
YSI 0:c8a2590c2f2e 93 LCD.print((int)c);
YSI 0:c8a2590c2f2e 94 acolade = false;
YSI 0:c8a2590c2f2e 95 escape = false;
YSI 0:c8a2590c2f2e 96 }
YSI 0:c8a2590c2f2e 97 break;
YSI 0:c8a2590c2f2e 98 case 'w':
YSI 0:c8a2590c2f2e 99 for(int i=0;i<4;i++)
YSI 0:c8a2590c2f2e 100 {
YSI 0:c8a2590c2f2e 101 LCD.set_position_cursor(0,i);
YSI 0:c8a2590c2f2e 102 for(int j=8;j<16;j++)
YSI 0:c8a2590c2f2e 103 {
YSI 0:c8a2590c2f2e 104 LCD.print("%c", j);
YSI 0:c8a2590c2f2e 105 pc.printf("X_pos %2d Y_pos %d\r\n", LCD.get_X_position_cursor(), LCD.get_Y_position_cursor());
YSI 0:c8a2590c2f2e 106 // wait(0.25);
YSI 0:c8a2590c2f2e 107 }
YSI 0:c8a2590c2f2e 108 }
YSI 0:c8a2590c2f2e 109
YSI 0:c8a2590c2f2e 110 for(int k=8;k<16;k++)
YSI 0:c8a2590c2f2e 111 {
YSI 0:c8a2590c2f2e 112 l1 = l2 = l3 = l3 = l4 = l5 = l6 = l7 = l8 = 0;
YSI 0:c8a2590c2f2e 113 for(int i=0;i<8;i++)
YSI 0:c8a2590c2f2e 114 {
YSI 0:c8a2590c2f2e 115 for(int j=1;j<32;j*=2)
YSI 0:c8a2590c2f2e 116 {
YSI 0:c8a2590c2f2e 117 if(i == 0) l1 += j;
YSI 0:c8a2590c2f2e 118 else if(i == 1) l2 += j;
YSI 0:c8a2590c2f2e 119 else if(i == 2) l3 += j;
YSI 0:c8a2590c2f2e 120 else if(i == 3) l4 += j;
YSI 0:c8a2590c2f2e 121 else if(i == 4) l5 += j;
YSI 0:c8a2590c2f2e 122 else if(i == 5) l6 += j;
YSI 0:c8a2590c2f2e 123 else if(i == 6) l7 += j;
YSI 0:c8a2590c2f2e 124 else if(i == 7) l8 += j;
YSI 0:c8a2590c2f2e 125 LCD.define_caractere(k,l1,l2,l3,l4,l5,l6,l7,l8);
YSI 0:c8a2590c2f2e 126 // wait(0.1);
YSI 0:c8a2590c2f2e 127 }
YSI 0:c8a2590c2f2e 128 }
YSI 0:c8a2590c2f2e 129 }
YSI 0:c8a2590c2f2e 130 for(int k=8;k<16;k++)
YSI 0:c8a2590c2f2e 131 {
YSI 0:c8a2590c2f2e 132 l1 = l2 = l3 = l3 = l4 = l5 = l6 = l7 = l8 = 31;
YSI 0:c8a2590c2f2e 133 for(int i=0;i<8;i++)
YSI 0:c8a2590c2f2e 134 {
YSI 0:c8a2590c2f2e 135 for(int j=1;j<32;j*=2)
YSI 0:c8a2590c2f2e 136 {
YSI 0:c8a2590c2f2e 137 if(i == 0) l1 -= j;
YSI 0:c8a2590c2f2e 138 else if(i == 1) l2 -= j;
YSI 0:c8a2590c2f2e 139 else if(i == 2) l3 -= j;
YSI 0:c8a2590c2f2e 140 else if(i == 3) l4 -= j;
YSI 0:c8a2590c2f2e 141 else if(i == 4) l5 -= j;
YSI 0:c8a2590c2f2e 142 else if(i == 5) l6 -= j;
YSI 0:c8a2590c2f2e 143 else if(i == 6) l7 -= j;
YSI 0:c8a2590c2f2e 144 else if(i == 7) l8 -= j;
YSI 0:c8a2590c2f2e 145 LCD.define_caractere(k,l1,l2,l3,l4,l5,l6,l7,l8);
YSI 0:c8a2590c2f2e 146 // wait(0.1);
YSI 0:c8a2590c2f2e 147 }
YSI 0:c8a2590c2f2e 148 }
YSI 0:c8a2590c2f2e 149 }
YSI 0:c8a2590c2f2e 150 break;
YSI 0:c8a2590c2f2e 151 case 'x':
YSI 0:c8a2590c2f2e 152 // LCD.set_position_cursor(0,0);
YSI 0:c8a2590c2f2e 153 LCD.define_and_print_caractere(8,1,2,4,8,8,4,2,1);
YSI 0:c8a2590c2f2e 154 LCD.define_caractere(8,16,8,4,2,2,4,8,16);
YSI 0:c8a2590c2f2e 155 LCD.print((char)8);
YSI 0:c8a2590c2f2e 156 // LCD.print((char)8);
YSI 0:c8a2590c2f2e 157 // LCD.define_caractere(8,1,2,4,8,8,4,2,1);
YSI 0:c8a2590c2f2e 158 /* for(int k=8;k<16;k++)
YSI 0:c8a2590c2f2e 159 {
YSI 0:c8a2590c2f2e 160 l1 = l2 = l3 = l3 = l4 = l5 = l6 = l7 = l8 = 0;
YSI 0:c8a2590c2f2e 161 for(int i=0;i<8;i++)
YSI 0:c8a2590c2f2e 162 {
YSI 0:c8a2590c2f2e 163 for(int j=1;j<32;j*=2)
YSI 0:c8a2590c2f2e 164 {
YSI 0:c8a2590c2f2e 165 if(i == 0) l1 += j;
YSI 0:c8a2590c2f2e 166 else if(i == 1) l2 += j;
YSI 0:c8a2590c2f2e 167 else if(i == 2) l3 += j;
YSI 0:c8a2590c2f2e 168 else if(i == 3) l4 += j;
YSI 0:c8a2590c2f2e 169 else if(i == 4) l5 += j;
YSI 0:c8a2590c2f2e 170 else if(i == 5) l6 += j;
YSI 0:c8a2590c2f2e 171 else if(i == 6) l7 += j;
YSI 0:c8a2590c2f2e 172 else if(i == 7) l8 += j;
YSI 0:c8a2590c2f2e 173 LCD.define_and_print_caractere(k,l1,l2,l3,l4,l5,l6,l7,l8);
YSI 0:c8a2590c2f2e 174 // wait(0.1);
YSI 0:c8a2590c2f2e 175 }
YSI 0:c8a2590c2f2e 176 }
YSI 0:c8a2590c2f2e 177 }
YSI 0:c8a2590c2f2e 178 for(int k=8;k<16;k++)
YSI 0:c8a2590c2f2e 179 {
YSI 0:c8a2590c2f2e 180 l1 = l2 = l3 = l3 = l4 = l5 = l6 = l7 = l8 = 31;
YSI 0:c8a2590c2f2e 181 for(int i=0;i<8;i++)
YSI 0:c8a2590c2f2e 182 {
YSI 0:c8a2590c2f2e 183 for(int j=1;j<32;j*=2)
YSI 0:c8a2590c2f2e 184 {
YSI 0:c8a2590c2f2e 185 if(i == 0) l1 -= j;
YSI 0:c8a2590c2f2e 186 else if(i == 1) l2 -= j;
YSI 0:c8a2590c2f2e 187 else if(i == 2) l3 -= j;
YSI 0:c8a2590c2f2e 188 else if(i == 3) l4 -= j;
YSI 0:c8a2590c2f2e 189 else if(i == 4) l5 -= j;
YSI 0:c8a2590c2f2e 190 else if(i == 5) l6 -= j;
YSI 0:c8a2590c2f2e 191 else if(i == 6) l7 -= j;
YSI 0:c8a2590c2f2e 192 else if(i == 7) l8 -= j;
YSI 0:c8a2590c2f2e 193 LCD.define_and_print_caractere(k,l1,l2,l3,l4,l5,l6,l7,l8);
YSI 0:c8a2590c2f2e 194 // wait(0.1);
YSI 0:c8a2590c2f2e 195 }
YSI 0:c8a2590c2f2e 196 }
YSI 0:c8a2590c2f2e 197 }
YSI 0:c8a2590c2f2e 198 */ break;
YSI 0:c8a2590c2f2e 199 default:
YSI 0:c8a2590c2f2e 200 LCD.print(c);
YSI 0:c8a2590c2f2e 201 pc.printf("X_pos %2d Y_pos %d\r\n", LCD.get_X_position_cursor(), LCD.get_Y_position_cursor());
YSI 0:c8a2590c2f2e 202 break;
YSI 0:c8a2590c2f2e 203 }
YSI 0:c8a2590c2f2e 204 }