/ 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
--- /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;
+            }
+
+
+        }
+
+    }
+
+}
+
+
--- /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