/ Mbed 2 deprecated LAB3

Dependencies:   mbed

Committer:
sunninety1
Date:
Fri Nov 16 16:53:05 2018 +0000
Revision:
0:7359a54eb056
10;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sunninety1 0:7359a54eb056 1 #include "mbed.h"
sunninety1 0:7359a54eb056 2 Serial pc(D8, D2); // change to D8, D2 for BT คำสั่งเลือก port ให้เป็น tx rx ถ้าไม่กำหนด แปลว่าใช้ baudrate 9600
sunninety1 0:7359a54eb056 3 Serial ser(D1, D0);
sunninety1 0:7359a54eb056 4 //for 7 segment digit 1
sunninety1 0:7359a54eb056 5 DigitalOut sd(PC_0);
sunninety1 0:7359a54eb056 6 DigitalOut sc(PC_1);
sunninety1 0:7359a54eb056 7 DigitalOut sb(PB_0);
sunninety1 0:7359a54eb056 8 DigitalOut sa(PA_4);
sunninety1 0:7359a54eb056 9 DigitalOut sdo(PA_1);
sunninety1 0:7359a54eb056 10
sunninety1 0:7359a54eb056 11 AnalogIn analog_value(A1);
sunninety1 0:7359a54eb056 12
sunninety1 0:7359a54eb056 13
sunninety1 0:7359a54eb056 14 void m1(int x)
sunninety1 0:7359a54eb056 15 {
sunninety1 0:7359a54eb056 16 BusOut a(PA_4,PB_0,PC_1,PC_0);
sunninety1 0:7359a54eb056 17 a=x;
sunninety1 0:7359a54eb056 18 }
sunninety1 0:7359a54eb056 19 int main()
sunninety1 0:7359a54eb056 20 {
sunninety1 0:7359a54eb056 21 uint8_t state_menu=0; //ให้ตัวแปลเหล่านี้เก็บในรูป 8บิต
sunninety1 0:7359a54eb056 22 uint8_t state_show=0;
sunninety1 0:7359a54eb056 23 uint8_t state_exit =0;
sunninety1 0:7359a54eb056 24 uint8_t state_ser=0;
sunninety1 0:7359a54eb056 25 uint8_t data;
sunninety1 0:7359a54eb056 26 uint8_t data1;
sunninety1 0:7359a54eb056 27 while(1) {
sunninety1 0:7359a54eb056 28 if(state_show == 0) {
sunninety1 0:7359a54eb056 29 pc.printf("************\n");
sunninety1 0:7359a54eb056 30 pc.printf(" Menu \n");
sunninety1 0:7359a54eb056 31 pc.printf("************\n");
sunninety1 0:7359a54eb056 32 pc.printf("1.Show number in 7segment\n");
sunninety1 0:7359a54eb056 33 pc.printf("2.Read VR");
sunninety1 0:7359a54eb056 34 state_show =1;
sunninety1 0:7359a54eb056 35 }
sunninety1 0:7359a54eb056 36
sunninety1 0:7359a54eb056 37
sunninety1 0:7359a54eb056 38 if(pc.readable()) { // คำสั่งดูว่ามีอะไรส่งมาไหม ถ้ามีก็จะเริ่มเข้าคำสั่ง
sunninety1 0:7359a54eb056 39 data = pc.getc(); // pc.getc คือรับค่าที่เราพิมพ์ใน serial monitor
sunninety1 0:7359a54eb056 40 pc.printf("***************\n");
sunninety1 0:7359a54eb056 41 state_show =0;
sunninety1 0:7359a54eb056 42 state_exit =0;
sunninety1 0:7359a54eb056 43
sunninety1 0:7359a54eb056 44 switch(data) {
sunninety1 0:7359a54eb056 45 case '1':
sunninety1 0:7359a54eb056 46 do {
sunninety1 0:7359a54eb056 47 if(state_menu == 0) {
sunninety1 0:7359a54eb056 48 pc.printf("Plz Enter number 0-9\n");
sunninety1 0:7359a54eb056 49 pc.printf("x.Exit\n");
sunninety1 0:7359a54eb056 50 state_menu = 1;
sunninety1 0:7359a54eb056 51 }
sunninety1 0:7359a54eb056 52
sunninety1 0:7359a54eb056 53 if(pc.readable()) {
sunninety1 0:7359a54eb056 54
sunninety1 0:7359a54eb056 55 if(state_ser==0) {
sunninety1 0:7359a54eb056 56 ser.printf("Request 1 accept? \n");
sunninety1 0:7359a54eb056 57 ser.printf("accept : y \n ");
sunninety1 0:7359a54eb056 58 state_ser=1;
sunninety1 0:7359a54eb056 59 }
sunninety1 0:7359a54eb056 60
sunninety1 0:7359a54eb056 61 if(ser.readable()) {
sunninety1 0:7359a54eb056 62 data1 = ser.getc();
sunninety1 0:7359a54eb056 63 if(data1=='y') {
sunninety1 0:7359a54eb056 64 data = pc.getc();
sunninety1 0:7359a54eb056 65 switch(data) {
sunninety1 0:7359a54eb056 66 case '0':
sunninety1 0:7359a54eb056 67 ser.printf("Show number 0 in 7segment \n");
sunninety1 0:7359a54eb056 68 m1(0);
sunninety1 0:7359a54eb056 69 state_ser=0;
sunninety1 0:7359a54eb056 70 break;
sunninety1 0:7359a54eb056 71
sunninety1 0:7359a54eb056 72 case '1':
sunninety1 0:7359a54eb056 73 ser.printf("Show number 1 in 7segment \n");
sunninety1 0:7359a54eb056 74 m1(1);
sunninety1 0:7359a54eb056 75 state_ser=0;
sunninety1 0:7359a54eb056 76 break;
sunninety1 0:7359a54eb056 77
sunninety1 0:7359a54eb056 78 case '2':
sunninety1 0:7359a54eb056 79 ser.printf("Show number 2 in 7segment \n");
sunninety1 0:7359a54eb056 80 m1(2);
sunninety1 0:7359a54eb056 81 state_ser=0;
sunninety1 0:7359a54eb056 82 break;
sunninety1 0:7359a54eb056 83
sunninety1 0:7359a54eb056 84 case '3':
sunninety1 0:7359a54eb056 85 ser.printf("Show number 3 in 7segment \n");
sunninety1 0:7359a54eb056 86 m1(3);
sunninety1 0:7359a54eb056 87 state_ser=0;
sunninety1 0:7359a54eb056 88 break;
sunninety1 0:7359a54eb056 89
sunninety1 0:7359a54eb056 90 case '4':
sunninety1 0:7359a54eb056 91 ser.printf("Show number 4 in 7segment \n");
sunninety1 0:7359a54eb056 92 m1(4);
sunninety1 0:7359a54eb056 93 state_ser=0;
sunninety1 0:7359a54eb056 94 break;
sunninety1 0:7359a54eb056 95
sunninety1 0:7359a54eb056 96 case '5':
sunninety1 0:7359a54eb056 97 ser.printf("Show number 5 in 7segment \n");
sunninety1 0:7359a54eb056 98 m1(5);
sunninety1 0:7359a54eb056 99 state_ser=0;
sunninety1 0:7359a54eb056 100 break;
sunninety1 0:7359a54eb056 101
sunninety1 0:7359a54eb056 102 case '6':
sunninety1 0:7359a54eb056 103 ser.printf("Show number 6 in 7segment \n");
sunninety1 0:7359a54eb056 104 m1(6);
sunninety1 0:7359a54eb056 105 state_ser=0;
sunninety1 0:7359a54eb056 106 break;
sunninety1 0:7359a54eb056 107
sunninety1 0:7359a54eb056 108 case '7':
sunninety1 0:7359a54eb056 109 ser.printf("Show number 7 in 7segment \n");
sunninety1 0:7359a54eb056 110 m1(7);
sunninety1 0:7359a54eb056 111 state_ser=0;
sunninety1 0:7359a54eb056 112 break;
sunninety1 0:7359a54eb056 113
sunninety1 0:7359a54eb056 114 case '8':
sunninety1 0:7359a54eb056 115 ser.printf("Show number 8 in 7segment \n");
sunninety1 0:7359a54eb056 116 m1(8);
sunninety1 0:7359a54eb056 117 state_ser=0;
sunninety1 0:7359a54eb056 118 break;
sunninety1 0:7359a54eb056 119
sunninety1 0:7359a54eb056 120 case '9':
sunninety1 0:7359a54eb056 121 ser.printf("Show number 9 in 7segment \n");
sunninety1 0:7359a54eb056 122 m1(9);
sunninety1 0:7359a54eb056 123 state_ser=0;
sunninety1 0:7359a54eb056 124 break;
sunninety1 0:7359a54eb056 125
sunninety1 0:7359a54eb056 126 case 'x':
sunninety1 0:7359a54eb056 127 pc.printf("*****************\n back to menu \n");
sunninety1 0:7359a54eb056 128 state_exit =1;
sunninety1 0:7359a54eb056 129 state_ser=0;
sunninety1 0:7359a54eb056 130 break;
sunninety1 0:7359a54eb056 131
sunninety1 0:7359a54eb056 132 default:
sunninety1 0:7359a54eb056 133 pc.printf("plz select number 0-9 or x\n");
sunninety1 0:7359a54eb056 134 pc.printf("\n");
sunninety1 0:7359a54eb056 135 state_ser=0;
sunninety1 0:7359a54eb056 136 break;
sunninety1 0:7359a54eb056 137 }
sunninety1 0:7359a54eb056 138 } else {
sunninety1 0:7359a54eb056 139 state_menu=0;
sunninety1 0:7359a54eb056 140 state_ser=0;
sunninety1 0:7359a54eb056 141 }
sunninety1 0:7359a54eb056 142 }
sunninety1 0:7359a54eb056 143 }
sunninety1 0:7359a54eb056 144 } while(state_exit ==0);
sunninety1 0:7359a54eb056 145 pc.printf("\n");
sunninety1 0:7359a54eb056 146 break;
sunninety1 0:7359a54eb056 147 case '2':
sunninety1 0:7359a54eb056 148 do {
sunninety1 0:7359a54eb056 149 if(state_menu == 0) {
sunninety1 0:7359a54eb056 150 pc.printf("a.Show analog input\n");
sunninety1 0:7359a54eb056 151 pc.printf("x.Exit\n");
sunninety1 0:7359a54eb056 152 state_menu = 1;
sunninety1 0:7359a54eb056 153 }
sunninety1 0:7359a54eb056 154 if(pc.readable()) {
sunninety1 0:7359a54eb056 155
sunninety1 0:7359a54eb056 156 if(state_ser==0) {
sunninety1 0:7359a54eb056 157 ser.printf("Request 2 accept? \n");
sunninety1 0:7359a54eb056 158 ser.printf("accept : y \n ");
sunninety1 0:7359a54eb056 159 state_ser=1;
sunninety1 0:7359a54eb056 160 }
sunninety1 0:7359a54eb056 161
sunninety1 0:7359a54eb056 162 if(ser.readable()) {
sunninety1 0:7359a54eb056 163 data1 = ser.getc();
sunninety1 0:7359a54eb056 164 if(data1=='y') {
sunninety1 0:7359a54eb056 165 data=pc.getc();
sunninety1 0:7359a54eb056 166 switch(data) {
sunninety1 0:7359a54eb056 167 case 'a':
sunninety1 0:7359a54eb056 168 float meas_r = analog_value.read();
sunninety1 0:7359a54eb056 169 meas_r*=3.3;
sunninety1 0:7359a54eb056 170 pc.printf("%0.2f\n",meas_r);
sunninety1 0:7359a54eb056 171 state_ser=0;
sunninety1 0:7359a54eb056 172 break;
sunninety1 0:7359a54eb056 173 case 'x':
sunninety1 0:7359a54eb056 174 ser.printf("back to menu \n");
sunninety1 0:7359a54eb056 175 state_exit =1;
sunninety1 0:7359a54eb056 176 state_ser=0;
sunninety1 0:7359a54eb056 177 break;
sunninety1 0:7359a54eb056 178 default:
sunninety1 0:7359a54eb056 179 pc.printf("plz select a or x\n");
sunninety1 0:7359a54eb056 180 pc.printf("\n");
sunninety1 0:7359a54eb056 181 state_ser=0;
sunninety1 0:7359a54eb056 182 break;
sunninety1 0:7359a54eb056 183 }
sunninety1 0:7359a54eb056 184 } else {
sunninety1 0:7359a54eb056 185 state_menu=0;
sunninety1 0:7359a54eb056 186 state_ser=0;
sunninety1 0:7359a54eb056 187 }
sunninety1 0:7359a54eb056 188 }
sunninety1 0:7359a54eb056 189 }
sunninety1 0:7359a54eb056 190 } while(state_exit ==0);
sunninety1 0:7359a54eb056 191 pc.printf("\n");
sunninety1 0:7359a54eb056 192 break;
sunninety1 0:7359a54eb056 193
sunninety1 0:7359a54eb056 194
sunninety1 0:7359a54eb056 195
sunninety1 0:7359a54eb056 196 /* switch(data) {
sunninety1 0:7359a54eb056 197
sunninety1 0:7359a54eb056 198 case 'a': {
sunninety1 0:7359a54eb056 199 ser.printf("Request 2 accept? \n");
sunninety1 0:7359a54eb056 200 if(ser.readable()) {
sunninety1 0:7359a54eb056 201 data1=ser.getc();
sunninety1 0:7359a54eb056 202 if(data1=='y') {
sunninety1 0:7359a54eb056 203 float meas_r = analog_value.read();
sunninety1 0:7359a54eb056 204 meas_r*=3.3;
sunninety1 0:7359a54eb056 205 pc.printf("%0.2f\n",meas_r);
sunninety1 0:7359a54eb056 206 break;
sunninety1 0:7359a54eb056 207 } else {
sunninety1 0:7359a54eb056 208 break;
sunninety1 0:7359a54eb056 209 }
sunninety1 0:7359a54eb056 210 }
sunninety1 0:7359a54eb056 211
sunninety1 0:7359a54eb056 212 break;
sunninety1 0:7359a54eb056 213
sunninety1 0:7359a54eb056 214 }
sunninety1 0:7359a54eb056 215 case 'x': {
sunninety1 0:7359a54eb056 216 state_exit =1;
sunninety1 0:7359a54eb056 217 break;
sunninety1 0:7359a54eb056 218 }
sunninety1 0:7359a54eb056 219 default: {
sunninety1 0:7359a54eb056 220 pc.printf("plz select a or x \n");
sunninety1 0:7359a54eb056 221 pc.printf("\n");
sunninety1 0:7359a54eb056 222 break;
sunninety1 0:7359a54eb056 223 }
sunninety1 0:7359a54eb056 224 }*/
sunninety1 0:7359a54eb056 225
sunninety1 0:7359a54eb056 226 // pc.printf("kkkkk\n");
sunninety1 0:7359a54eb056 227
sunninety1 0:7359a54eb056 228 default:
sunninety1 0:7359a54eb056 229 pc.printf("plz select 1 or 2 \n");
sunninety1 0:7359a54eb056 230 pc.printf("\n");
sunninety1 0:7359a54eb056 231 state_ser=0;
sunninety1 0:7359a54eb056 232 break;
sunninety1 0:7359a54eb056 233 }
sunninety1 0:7359a54eb056 234
sunninety1 0:7359a54eb056 235
sunninety1 0:7359a54eb056 236 }
sunninety1 0:7359a54eb056 237
sunninety1 0:7359a54eb056 238 }
sunninety1 0:7359a54eb056 239
sunninety1 0:7359a54eb056 240 }
sunninety1 0:7359a54eb056 241
sunninety1 0:7359a54eb056 242