hf
Dependencies: mbed
Fork of Proj by
main.cpp@0:d26b3ebaf06e, 2016-12-04 (annotated)
- Committer:
- 58340500068
- Date:
- Sun Dec 04 23:01:44 2016 +0000
- Revision:
- 0:d26b3ebaf06e
- Child:
- 1:e9b23de44bb8
hf
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
58340500068 | 0:d26b3ebaf06e | 1 | #include "mbed.h" |
58340500068 | 0:d26b3ebaf06e | 2 | |
58340500068 | 0:d26b3ebaf06e | 3 | Serial duino(PA_11, PA_12); |
58340500068 | 0:d26b3ebaf06e | 4 | Serial pc(USBTX, USBRX); |
58340500068 | 0:d26b3ebaf06e | 5 | DigitalIn btn(USER_BUTTON); |
58340500068 | 0:d26b3ebaf06e | 6 | DigitalIn btn1(); |
58340500068 | 0:d26b3ebaf06e | 7 | Timer timer; |
58340500068 | 0:d26b3ebaf06e | 8 | uint8_t state_new=0; |
58340500068 | 0:d26b3ebaf06e | 9 | uint8_t state_menu=0; |
58340500068 | 0:d26b3ebaf06e | 10 | uint8_t state_show=0; |
58340500068 | 0:d26b3ebaf06e | 11 | uint8_t state_exit =0; |
58340500068 | 0:d26b3ebaf06e | 12 | uint8_t data; |
58340500068 | 0:d26b3ebaf06e | 13 | int last[3] = {0,0,0}; |
58340500068 | 0:d26b3ebaf06e | 14 | |
58340500068 | 0:d26b3ebaf06e | 15 | int lis[30] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30}; |
58340500068 | 0:d26b3ebaf06e | 16 | |
58340500068 | 0:d26b3ebaf06e | 17 | void Win(){ //ชนะ |
58340500068 | 0:d26b3ebaf06e | 18 | if (timer.read() > 1) { |
58340500068 | 0:d26b3ebaf06e | 19 | pc.printf("Writing!\n\r"); |
58340500068 | 0:d26b3ebaf06e | 20 | duino.putc(lis[0]); |
58340500068 | 0:d26b3ebaf06e | 21 | duino.putc(lis[1]); |
58340500068 | 0:d26b3ebaf06e | 22 | duino.putc(lis[2]); |
58340500068 | 0:d26b3ebaf06e | 23 | timer.reset(); |
58340500068 | 0:d26b3ebaf06e | 24 | } |
58340500068 | 0:d26b3ebaf06e | 25 | if (duino.readable()) |
58340500068 | 0:d26b3ebaf06e | 26 | { |
58340500068 | 0:d26b3ebaf06e | 27 | pc.printf("recieving %c",duino.getc()); |
58340500068 | 0:d26b3ebaf06e | 28 | } |
58340500068 | 0:d26b3ebaf06e | 29 | } |
58340500068 | 0:d26b3ebaf06e | 30 | |
58340500068 | 0:d26b3ebaf06e | 31 | void Lose(){ //แพ้ |
58340500068 | 0:d26b3ebaf06e | 32 | |
58340500068 | 0:d26b3ebaf06e | 33 | if (timer.read() > 1) { |
58340500068 | 0:d26b3ebaf06e | 34 | pc.printf("Writing!\n\r"); |
58340500068 | 0:d26b3ebaf06e | 35 | duino.putc(lis[3]); |
58340500068 | 0:d26b3ebaf06e | 36 | duino.putc(lis[4]); |
58340500068 | 0:d26b3ebaf06e | 37 | duino.putc(lis[5]); |
58340500068 | 0:d26b3ebaf06e | 38 | duino.putc(lis[6]); |
58340500068 | 0:d26b3ebaf06e | 39 | timer.reset(); |
58340500068 | 0:d26b3ebaf06e | 40 | } |
58340500068 | 0:d26b3ebaf06e | 41 | if (duino.readable()) |
58340500068 | 0:d26b3ebaf06e | 42 | { |
58340500068 | 0:d26b3ebaf06e | 43 | pc.printf("recieving %c",duino.getc()); |
58340500068 | 0:d26b3ebaf06e | 44 | } |
58340500068 | 0:d26b3ebaf06e | 45 | |
58340500068 | 0:d26b3ebaf06e | 46 | } |
58340500068 | 0:d26b3ebaf06e | 47 | |
58340500068 | 0:d26b3ebaf06e | 48 | |
58340500068 | 0:d26b3ebaf06e | 49 | void number(){ //นับเวลา |
58340500068 | 0:d26b3ebaf06e | 50 | if (timer.read() > 1) { |
58340500068 | 0:d26b3ebaf06e | 51 | pc.printf("Writing!\n\r"); |
58340500068 | 0:d26b3ebaf06e | 52 | duino.putc(lis[7]); //9 |
58340500068 | 0:d26b3ebaf06e | 53 | duino.putc(lis[8]); //8 |
58340500068 | 0:d26b3ebaf06e | 54 | duino.putc(lis[9]); //7 |
58340500068 | 0:d26b3ebaf06e | 55 | duino.putc(lis[10]);//6 |
58340500068 | 0:d26b3ebaf06e | 56 | duino.putc(lis[11]);//5 |
58340500068 | 0:d26b3ebaf06e | 57 | duino.putc(lis[12]);//4 |
58340500068 | 0:d26b3ebaf06e | 58 | duino.putc(lis[13]);//3 |
58340500068 | 0:d26b3ebaf06e | 59 | duino.putc(lis[14]);//2 |
58340500068 | 0:d26b3ebaf06e | 60 | duino.putc(lis[15]);//1 |
58340500068 | 0:d26b3ebaf06e | 61 | duino.putc(lis[16]);//0 |
58340500068 | 0:d26b3ebaf06e | 62 | |
58340500068 | 0:d26b3ebaf06e | 63 | timer.reset(); |
58340500068 | 0:d26b3ebaf06e | 64 | } |
58340500068 | 0:d26b3ebaf06e | 65 | if (duino.readable()){ |
58340500068 | 0:d26b3ebaf06e | 66 | pc.printf("recieving %c",duino.getc()); |
58340500068 | 0:d26b3ebaf06e | 67 | } |
58340500068 | 0:d26b3ebaf06e | 68 | |
58340500068 | 0:d26b3ebaf06e | 69 | } |
58340500068 | 0:d26b3ebaf06e | 70 | |
58340500068 | 0:d26b3ebaf06e | 71 | |
58340500068 | 0:d26b3ebaf06e | 72 | void correct(){ //เช็คถูก |
58340500068 | 0:d26b3ebaf06e | 73 | if (timer.read() > 1) { |
58340500068 | 0:d26b3ebaf06e | 74 | pc.printf("Writing!\n\r"); |
58340500068 | 0:d26b3ebaf06e | 75 | duino.putc(lis[18]); |
58340500068 | 0:d26b3ebaf06e | 76 | timer.reset(); |
58340500068 | 0:d26b3ebaf06e | 77 | } |
58340500068 | 0:d26b3ebaf06e | 78 | if (duino.readable()){ |
58340500068 | 0:d26b3ebaf06e | 79 | pc.printf("recieving %c",duino.getc()); |
58340500068 | 0:d26b3ebaf06e | 80 | } |
58340500068 | 0:d26b3ebaf06e | 81 | |
58340500068 | 0:d26b3ebaf06e | 82 | } |
58340500068 | 0:d26b3ebaf06e | 83 | |
58340500068 | 0:d26b3ebaf06e | 84 | void error(){ // |
58340500068 | 0:d26b3ebaf06e | 85 | if (timer.read() > 1) { |
58340500068 | 0:d26b3ebaf06e | 86 | pc.printf("Writing!\n\r"); |
58340500068 | 0:d26b3ebaf06e | 87 | duino.putc(lis[19]); |
58340500068 | 0:d26b3ebaf06e | 88 | timer.reset(); |
58340500068 | 0:d26b3ebaf06e | 89 | } |
58340500068 | 0:d26b3ebaf06e | 90 | if (duino.readable()){ |
58340500068 | 0:d26b3ebaf06e | 91 | pc.printf("recieving %c",duino.getc()); |
58340500068 | 0:d26b3ebaf06e | 92 | } |
58340500068 | 0:d26b3ebaf06e | 93 | |
58340500068 | 0:d26b3ebaf06e | 94 | } |
58340500068 | 0:d26b3ebaf06e | 95 | void heart(){ //ลงค่าเสร็จ |
58340500068 | 0:d26b3ebaf06e | 96 | if (timer.read() > 1) { |
58340500068 | 0:d26b3ebaf06e | 97 | pc.printf("Writing!\n\r"); |
58340500068 | 0:d26b3ebaf06e | 98 | |
58340500068 | 0:d26b3ebaf06e | 99 | |
58340500068 | 0:d26b3ebaf06e | 100 | duino.putc(lis[20]); |
58340500068 | 0:d26b3ebaf06e | 101 | |
58340500068 | 0:d26b3ebaf06e | 102 | |
58340500068 | 0:d26b3ebaf06e | 103 | timer.reset(); |
58340500068 | 0:d26b3ebaf06e | 104 | } |
58340500068 | 0:d26b3ebaf06e | 105 | if (duino.readable()){ |
58340500068 | 0:d26b3ebaf06e | 106 | pc.printf("recieving %c",duino.getc()); |
58340500068 | 0:d26b3ebaf06e | 107 | } |
58340500068 | 0:d26b3ebaf06e | 108 | |
58340500068 | 0:d26b3ebaf06e | 109 | } |
58340500068 | 0:d26b3ebaf06e | 110 | void woman(){ //ตัวหลัก |
58340500068 | 0:d26b3ebaf06e | 111 | if (timer.read() > 1) { |
58340500068 | 0:d26b3ebaf06e | 112 | pc.printf("Writing!\n\r"); |
58340500068 | 0:d26b3ebaf06e | 113 | |
58340500068 | 0:d26b3ebaf06e | 114 | |
58340500068 | 0:d26b3ebaf06e | 115 | duino.putc(lis[21]); |
58340500068 | 0:d26b3ebaf06e | 116 | |
58340500068 | 0:d26b3ebaf06e | 117 | |
58340500068 | 0:d26b3ebaf06e | 118 | timer.reset(); |
58340500068 | 0:d26b3ebaf06e | 119 | } |
58340500068 | 0:d26b3ebaf06e | 120 | if (duino.readable()){ |
58340500068 | 0:d26b3ebaf06e | 121 | pc.printf("recieving %c",duino.getc()); |
58340500068 | 0:d26b3ebaf06e | 122 | } |
58340500068 | 0:d26b3ebaf06e | 123 | |
58340500068 | 0:d26b3ebaf06e | 124 | } |
58340500068 | 0:d26b3ebaf06e | 125 | void von(){ //หมุน |
58340500068 | 0:d26b3ebaf06e | 126 | if (timer.read() > 1) { |
58340500068 | 0:d26b3ebaf06e | 127 | pc.printf("Writing!\n\r"); |
58340500068 | 0:d26b3ebaf06e | 128 | |
58340500068 | 0:d26b3ebaf06e | 129 | |
58340500068 | 0:d26b3ebaf06e | 130 | duino.putc(lis[22]); |
58340500068 | 0:d26b3ebaf06e | 131 | |
58340500068 | 0:d26b3ebaf06e | 132 | |
58340500068 | 0:d26b3ebaf06e | 133 | timer.reset(); |
58340500068 | 0:d26b3ebaf06e | 134 | } |
58340500068 | 0:d26b3ebaf06e | 135 | if (duino.readable()){ |
58340500068 | 0:d26b3ebaf06e | 136 | pc.printf("recieving %c",duino.getc()); |
58340500068 | 0:d26b3ebaf06e | 137 | } |
58340500068 | 0:d26b3ebaf06e | 138 | |
58340500068 | 0:d26b3ebaf06e | 139 | } |
58340500068 | 0:d26b3ebaf06e | 140 | |
58340500068 | 0:d26b3ebaf06e | 141 | |
58340500068 | 0:d26b3ebaf06e | 142 | int main() { |
58340500068 | 0:d26b3ebaf06e | 143 | |
58340500068 | 0:d26b3ebaf06e | 144 | |
58340500068 | 0:d26b3ebaf06e | 145 | |
58340500068 | 0:d26b3ebaf06e | 146 | pc.baud(9600); |
58340500068 | 0:d26b3ebaf06e | 147 | duino.baud(9600); |
58340500068 | 0:d26b3ebaf06e | 148 | pc.printf("Starting...\n\r"); |
58340500068 | 0:d26b3ebaf06e | 149 | |
58340500068 | 0:d26b3ebaf06e | 150 | timer.start(); |
58340500068 | 0:d26b3ebaf06e | 151 | while (1) { |
58340500068 | 0:d26b3ebaf06e | 152 | if (btn == 9) |
58340500068 | 0:d26b3ebaf06e | 153 | { |
58340500068 | 0:d26b3ebaf06e | 154 | Win(); |
58340500068 | 0:d26b3ebaf06e | 155 | |
58340500068 | 0:d26b3ebaf06e | 156 | } |
58340500068 | 0:d26b3ebaf06e | 157 | |
58340500068 | 0:d26b3ebaf06e | 158 | if (btn == 9) |
58340500068 | 0:d26b3ebaf06e | 159 | { |
58340500068 | 0:d26b3ebaf06e | 160 | Lose(); |
58340500068 | 0:d26b3ebaf06e | 161 | |
58340500068 | 0:d26b3ebaf06e | 162 | } |
58340500068 | 0:d26b3ebaf06e | 163 | if (btn == 0) |
58340500068 | 0:d26b3ebaf06e | 164 | { |
58340500068 | 0:d26b3ebaf06e | 165 | number(); |
58340500068 | 0:d26b3ebaf06e | 166 | |
58340500068 | 0:d26b3ebaf06e | 167 | } |
58340500068 | 0:d26b3ebaf06e | 168 | |
58340500068 | 0:d26b3ebaf06e | 169 | if (btn == 9) //True |
58340500068 | 0:d26b3ebaf06e | 170 | { |
58340500068 | 0:d26b3ebaf06e | 171 | correct(); |
58340500068 | 0:d26b3ebaf06e | 172 | } |
58340500068 | 0:d26b3ebaf06e | 173 | |
58340500068 | 0:d26b3ebaf06e | 174 | if (btn == 9) //error |
58340500068 | 0:d26b3ebaf06e | 175 | { |
58340500068 | 0:d26b3ebaf06e | 176 | error(); |
58340500068 | 0:d26b3ebaf06e | 177 | |
58340500068 | 0:d26b3ebaf06e | 178 | } |
58340500068 | 0:d26b3ebaf06e | 179 | if (btn == 9) |
58340500068 | 0:d26b3ebaf06e | 180 | { |
58340500068 | 0:d26b3ebaf06e | 181 | heart(); |
58340500068 | 0:d26b3ebaf06e | 182 | } |
58340500068 | 0:d26b3ebaf06e | 183 | |
58340500068 | 0:d26b3ebaf06e | 184 | if (btn == 9) |
58340500068 | 0:d26b3ebaf06e | 185 | { |
58340500068 | 0:d26b3ebaf06e | 186 | woman(); |
58340500068 | 0:d26b3ebaf06e | 187 | } |
58340500068 | 0:d26b3ebaf06e | 188 | if (btn == 9) |
58340500068 | 0:d26b3ebaf06e | 189 | { |
58340500068 | 0:d26b3ebaf06e | 190 | von(); |
58340500068 | 0:d26b3ebaf06e | 191 | } |
58340500068 | 0:d26b3ebaf06e | 192 | |
58340500068 | 0:d26b3ebaf06e | 193 | wait(0.4); |
58340500068 | 0:d26b3ebaf06e | 194 | |
58340500068 | 0:d26b3ebaf06e | 195 | if(state_show == 0) { |
58340500068 | 0:d26b3ebaf06e | 196 | pc.printf("************\n"); |
58340500068 | 0:d26b3ebaf06e | 197 | pc.printf(" Menu \n"); |
58340500068 | 0:d26b3ebaf06e | 198 | pc.printf("1.Menu1\n"); |
58340500068 | 0:d26b3ebaf06e | 199 | |
58340500068 | 0:d26b3ebaf06e | 200 | state_show =1; |
58340500068 | 0:d26b3ebaf06e | 201 | } |
58340500068 | 0:d26b3ebaf06e | 202 | if(pc.readable()) { |
58340500068 | 0:d26b3ebaf06e | 203 | data = pc.getc(); |
58340500068 | 0:d26b3ebaf06e | 204 | pc.printf("\n"); |
58340500068 | 0:d26b3ebaf06e | 205 | state_show =0; |
58340500068 | 0:d26b3ebaf06e | 206 | state_exit =0; |
58340500068 | 0:d26b3ebaf06e | 207 | switch(data) { |
58340500068 | 0:d26b3ebaf06e | 208 | case '1': |
58340500068 | 0:d26b3ebaf06e | 209 | do { |
58340500068 | 0:d26b3ebaf06e | 210 | if(state_menu == 0) { |
58340500068 | 0:d26b3ebaf06e | 211 | pc.printf("number 1-9\n"); |
58340500068 | 0:d26b3ebaf06e | 212 | |
58340500068 | 0:d26b3ebaf06e | 213 | state_menu = 1; |
58340500068 | 0:d26b3ebaf06e | 214 | } |
58340500068 | 0:d26b3ebaf06e | 215 | if(pc.readable()) |
58340500068 | 0:d26b3ebaf06e | 216 | { |
58340500068 | 0:d26b3ebaf06e | 217 | data = pc.getc(); |
58340500068 | 0:d26b3ebaf06e | 218 | pc.printf("\n"); |
58340500068 | 0:d26b3ebaf06e | 219 | state_menu=0; |
58340500068 | 0:d26b3ebaf06e | 220 | switch(data) { |
58340500068 | 0:d26b3ebaf06e | 221 | wait(0.5); |
58340500068 | 0:d26b3ebaf06e | 222 | case '1': |
58340500068 | 0:d26b3ebaf06e | 223 | duino.putc(lis[15]);//1 |
58340500068 | 0:d26b3ebaf06e | 224 | break; |
58340500068 | 0:d26b3ebaf06e | 225 | |
58340500068 | 0:d26b3ebaf06e | 226 | case '2': |
58340500068 | 0:d26b3ebaf06e | 227 | duino.putc(lis[14]);//2 |
58340500068 | 0:d26b3ebaf06e | 228 | break; |
58340500068 | 0:d26b3ebaf06e | 229 | case '3': |
58340500068 | 0:d26b3ebaf06e | 230 | duino.putc(lis[13]);//3 |
58340500068 | 0:d26b3ebaf06e | 231 | break; |
58340500068 | 0:d26b3ebaf06e | 232 | case '4': |
58340500068 | 0:d26b3ebaf06e | 233 | duino.putc(lis[12]);//4 |
58340500068 | 0:d26b3ebaf06e | 234 | break; |
58340500068 | 0:d26b3ebaf06e | 235 | case '5': |
58340500068 | 0:d26b3ebaf06e | 236 | duino.putc(lis[11]);//5 |
58340500068 | 0:d26b3ebaf06e | 237 | break; |
58340500068 | 0:d26b3ebaf06e | 238 | case '6': |
58340500068 | 0:d26b3ebaf06e | 239 | duino.putc(lis[10]);//6 |
58340500068 | 0:d26b3ebaf06e | 240 | break; |
58340500068 | 0:d26b3ebaf06e | 241 | case '7': |
58340500068 | 0:d26b3ebaf06e | 242 | duino.putc(lis[9]);//7 |
58340500068 | 0:d26b3ebaf06e | 243 | break; |
58340500068 | 0:d26b3ebaf06e | 244 | case '8': |
58340500068 | 0:d26b3ebaf06e | 245 | duino.putc(lis[8]);//8 |
58340500068 | 0:d26b3ebaf06e | 246 | break; |
58340500068 | 0:d26b3ebaf06e | 247 | case '9': |
58340500068 | 0:d26b3ebaf06e | 248 | duino.putc(lis[7]);//9 |
58340500068 | 0:d26b3ebaf06e | 249 | |
58340500068 | 0:d26b3ebaf06e | 250 | break; |
58340500068 | 0:d26b3ebaf06e | 251 | case 'H': |
58340500068 | 0:d26b3ebaf06e | 252 | duino.putc(lis[17]);//happy |
58340500068 | 0:d26b3ebaf06e | 253 | |
58340500068 | 0:d26b3ebaf06e | 254 | break; |
58340500068 | 0:d26b3ebaf06e | 255 | |
58340500068 | 0:d26b3ebaf06e | 256 | |
58340500068 | 0:d26b3ebaf06e | 257 | default: |
58340500068 | 0:d26b3ebaf06e | 258 | pc.printf("plz select a or s\n"); |
58340500068 | 0:d26b3ebaf06e | 259 | pc.printf("\n\n"); |
58340500068 | 0:d26b3ebaf06e | 260 | break; |
58340500068 | 0:d26b3ebaf06e | 261 | } |
58340500068 | 0:d26b3ebaf06e | 262 | } |
58340500068 | 0:d26b3ebaf06e | 263 | } while(state_exit ==0); |
58340500068 | 0:d26b3ebaf06e | 264 | pc.printf("\n"); |
58340500068 | 0:d26b3ebaf06e | 265 | break; |
58340500068 | 0:d26b3ebaf06e | 266 | |
58340500068 | 0:d26b3ebaf06e | 267 | |
58340500068 | 0:d26b3ebaf06e | 268 | |
58340500068 | 0:d26b3ebaf06e | 269 | } |
58340500068 | 0:d26b3ebaf06e | 270 | } |
58340500068 | 0:d26b3ebaf06e | 271 | } |
58340500068 | 0:d26b3ebaf06e | 272 | } |