/ Mbed 2 deprecated LAB3

Dependencies:   mbed

Files at this revision

API Documentation at this revision

Comitter:
sunninety1
Date:
Fri Nov 16 16:53:05 2018 +0000
Commit message:
10;

Changed in this revision

LAB3.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
diff -r 000000000000 -r 7359a54eb056 LAB3.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/LAB3.cpp	Fri Nov 16 16:53:05 2018 +0000
@@ -0,0 +1,242 @@
+#include "mbed.h"
+Serial pc(D8, D2); // change to D8, D2 for BT  คำสั่งเลือก port ให้เป็น tx rx ถ้าไม่กำหนด แปลว่าใช้ baudrate 9600
+Serial ser(D1, D0);
+//for 7 segment digit 1
+DigitalOut sd(PC_0);
+DigitalOut sc(PC_1);
+DigitalOut sb(PB_0);
+DigitalOut sa(PA_4);
+DigitalOut sdo(PA_1);
+
+AnalogIn analog_value(A1);
+
+
+void m1(int x)
+{
+    BusOut a(PA_4,PB_0,PC_1,PC_0);
+    a=x;
+}
+int main()
+{
+    uint8_t state_menu=0; //ให้ตัวแปลเหล่านี้เก็บในรูป 8บิต
+    uint8_t state_show=0;
+    uint8_t state_exit =0;
+    uint8_t state_ser=0;
+    uint8_t data;
+    uint8_t data1;
+    while(1) {
+        if(state_show == 0) {
+            pc.printf("************\n");
+            pc.printf("   Menu   \n");
+            pc.printf("************\n");
+            pc.printf("1.Show number in 7segment\n");
+            pc.printf("2.Read VR");
+            state_show =1;
+        }
+
+
+        if(pc.readable()) { // คำสั่งดูว่ามีอะไรส่งมาไหม ถ้ามีก็จะเริ่มเข้าคำสั่ง
+            data = pc.getc(); // pc.getc คือรับค่าที่เราพิมพ์ใน serial monitor
+            pc.printf("***************\n");
+            state_show =0;
+            state_exit =0;
+
+            switch(data) {
+                case '1':
+                    do {
+                        if(state_menu == 0) {
+                            pc.printf("Plz Enter number 0-9\n");
+                            pc.printf("x.Exit\n");
+                            state_menu = 1;
+                        }
+
+                        if(pc.readable()) {
+
+                            if(state_ser==0) {
+                                ser.printf("Request 1 accept? \n");
+                                ser.printf("accept : y \n ");
+                                state_ser=1;
+                            }
+
+                            if(ser.readable()) {
+                                data1 = ser.getc();
+                                if(data1=='y') {
+                                    data = pc.getc();
+                                    switch(data) {
+                                        case '0':
+                                            ser.printf("Show number 0 in 7segment \n");
+                                            m1(0);
+                                            state_ser=0;
+                                            break;
+
+                                        case '1':
+                                            ser.printf("Show number 1 in 7segment \n");
+                                            m1(1);
+                                            state_ser=0;
+                                            break;
+
+                                        case '2':
+                                            ser.printf("Show number 2 in 7segment \n");
+                                            m1(2);
+                                            state_ser=0;
+                                            break;
+
+                                        case '3':
+                                            ser.printf("Show number 3 in 7segment \n");
+                                            m1(3);
+                                            state_ser=0;
+                                            break;
+
+                                        case '4':
+                                            ser.printf("Show number 4 in 7segment \n");
+                                            m1(4);
+                                            state_ser=0;
+                                            break;
+
+                                        case '5':
+                                            ser.printf("Show number 5 in 7segment \n");
+                                            m1(5);
+                                            state_ser=0;
+                                            break;
+
+                                        case '6':
+                                            ser.printf("Show number 6 in 7segment \n");
+                                            m1(6);
+                                            state_ser=0;
+                                            break;
+
+                                        case '7':
+                                            ser.printf("Show number 7 in 7segment \n");
+                                            m1(7);
+                                            state_ser=0;
+                                            break;
+
+                                        case '8':
+                                            ser.printf("Show number 8 in 7segment \n");
+                                            m1(8);
+                                            state_ser=0;
+                                            break;
+
+                                        case '9':
+                                            ser.printf("Show number 9 in 7segment \n");
+                                            m1(9);
+                                            state_ser=0;
+                                            break;
+
+                                        case 'x':
+                                            pc.printf("*****************\n back to menu \n");
+                                            state_exit =1;
+                                            state_ser=0;
+                                            break;
+
+                                        default:
+                                            pc.printf("plz select number 0-9  or x\n");
+                                            pc.printf("\n");
+                                            state_ser=0;
+                                            break;
+                                    }
+                                } else {
+                                    state_menu=0;
+                                    state_ser=0;
+                                }
+                            }
+                        }
+                    } while(state_exit ==0);
+                    pc.printf("\n");
+                    break;
+                case '2':
+                    do {
+                        if(state_menu == 0) {
+                            pc.printf("a.Show analog input\n");
+                            pc.printf("x.Exit\n");
+                            state_menu = 1;
+                        }
+                        if(pc.readable()) {
+
+                            if(state_ser==0) {
+                                ser.printf("Request 2 accept? \n");
+                                ser.printf("accept : y \n ");
+                                state_ser=1;
+                            }
+
+                            if(ser.readable()) {
+                                data1 = ser.getc();
+                                if(data1=='y') {
+                                    data=pc.getc();
+                                    switch(data) {
+                                        case 'a':
+                                            float meas_r = analog_value.read();
+                                            meas_r*=3.3;
+                                            pc.printf("%0.2f\n",meas_r);
+                                            state_ser=0;
+                                            break;
+                                        case 'x':
+                                            ser.printf("back to menu \n");
+                                            state_exit =1;
+                                            state_ser=0;
+                                            break;
+                                        default:
+                                            pc.printf("plz select a or x\n");
+                                            pc.printf("\n");
+                                            state_ser=0;
+                                            break;
+                                    }
+                                } else {
+                                    state_menu=0;
+                                    state_ser=0;
+                                }
+                            }
+                        }
+                    } while(state_exit ==0);
+                    pc.printf("\n");
+                    break;
+
+
+
+                    /*                            switch(data) {
+
+                                                    case 'a': {
+                                                        ser.printf("Request 2 accept? \n");
+                                                        if(ser.readable()) {
+                                                            data1=ser.getc();
+                                                            if(data1=='y') {
+                                                                float meas_r = analog_value.read();
+                                                                meas_r*=3.3;
+                                                                pc.printf("%0.2f\n",meas_r);
+                                                                break;
+                                                            } else {
+                                                                break;
+                                                            }
+                                                        }
+
+                                                        break;
+
+                                                    }
+                                                    case 'x': {
+                                                        state_exit =1;
+                                                        break;
+                                                    }
+                                                    default: {
+                                                        pc.printf("plz select a or x \n");
+                                                        pc.printf("\n");
+                                                        break;
+                                                    }
+                                                }*/
+
+                    // pc.printf("kkkkk\n");
+
+                default:
+                    pc.printf("plz select 1 or 2 \n");
+                    pc.printf("\n");
+                    state_ser=0;
+                    break;
+            }
+
+
+        }
+
+    }
+
+}
+
+
diff -r 000000000000 -r 7359a54eb056 mbed.bld
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Fri Nov 16 16:53:05 2018 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/users/mbed_official/code/mbed/builds/e95d10626187
\ No newline at end of file