LAB3.cpp
- Committer:
- sunninety1
- Date:
- 2018-11-16
- Revision:
- 0:7359a54eb056
File content as of revision 0:7359a54eb056:
#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; } } } }