lib_LCD_oem_example
Dependencies: lib_LCD_oem mbed
main.cpp@0:c8a2590c2f2e, 2017-06-06 (annotated)
- Committer:
- YSI
- Date:
- Tue Jun 06 14:01:09 2017 +0000
- Revision:
- 0:c8a2590c2f2e
LCD_oem_example
Who changed what in which revision?
User | Revision | Line number | New 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 | } |