hf

Dependencies:   mbed

Committer:
58340500068
Date:
Sun Dec 04 23:01:44 2016 +0000
Revision:
0:d26b3ebaf06e
hf

Who changed what in which revision?

UserRevisionLine numberNew 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 }