lab4

Dependencies:   mbed

main.cpp

Committer:
wonner163
Date:
2017-11-23
Revision:
0:37c54bfab97b

File content as of revision 0:37c54bfab97b:

#include "mbed.h"

//------------------------------------
// Hyperterminal configuration
// 9600 bauds, 8-bit data, no parity
//------------------------------------

Serial pc(D8,D2);
BusOut myleds(D3,D4,D5,D6);
AnalogIn analog_value(A1);


int main()
{

    uint8_t state_menu=0;
    uint8_t state_show=0;
    uint8_t state_exit=0;
    uint8_t data;
    uint8_t num;
    float analogread;


    while(1) {
        if(state_show == 0) {
            pc.printf("************\n");
            pc.printf("   Menu   \n");
            pc.printf("************\n");
            pc.printf("1.SHOW 7-SEGMENT \n");
            pc.printf("2.READ VR \n");
            state_show =1;
        }
        if(pc.readable()) {
            data = pc.getc();
            pc.printf("\n");
            state_show =0;
            state_exit =0;

            switch(data) {
                case '1':
                    do {
                            if(state_menu == 0) {
                                pc.printf("SHOW 7-SEGMENT \n");
                                pc.printf("a.TEST 7 SEGMENT \n");
                                pc.printf("x.Exit\n");
                                state_menu = 1;
                            }
                            
                        if(pc.readable()) {
                            data = pc.getc();
                            pc.printf("\n");
                            state_menu=0;

                            switch(data) {
                                case 'a':
                                pc.printf("INSERT YOUR NUMBER(0-9) :  ");
                                num = pc.getc();
                                if(num==48){
                                    num=0;
                                    }
                                if(num==49){
                                    num=1;
                                    }
                                if(num==50){
                                    num=2;
                                    }
                                if(num==51){
                                    num=3;
                                    }
                                if(num==52){
                                    num=4;
                                    }
                                if(num==53){
                                    num=5;
                                    }
                                if(num==54){
                                    num=6;
                                    }
                                if(num==55){
                                    num=7;
                                    }
                                if(num==56){
                                    num=8;
                                    }
                                if(num==57){
                                    num=9;
                                    }
                                myleds = num;
                                pc.printf("NUM = ");
                                pc.printf("%d \n",num);                              
                                    break;

                                case 'x':
                                    state_exit =1;                               
                                    break;

                                default:
                                    pc.printf("plz select a or x\n");
                                    pc.printf("\n\n");
                                    break;
                            }
                        }
                    } while(state_exit ==0);
                    
                    pc.printf("\n");
                    break;

                case '2':

                    do {
                        if(state_menu == 0) {
                            pc.printf("Print Test\n");
                            pc.printf("a.- Read VR -\n");
                            pc.printf("x.Exit\n");
                            state_menu = 1;
                        }
                        if(pc.readable()) {
                            data = pc.getc();
                            pc.printf("\n");
                            state_menu=0;
                            analogread = analog_value.read()* 3.30; // Read the analog input value (value from 0.0 to 1.0 = full ADC conversion range) 

                            switch(data) {

                                case 'a':
                                    pc.printf("VR : ");
                                    pc.printf("%0.2f\n",analogread);
                                    pc.printf(" volt");
                                    break;


                                case 'x':
                                    state_exit =1;    
                                    break;

                                default:
                                    pc.printf("plz select a or s\n");
                                    pc.printf("\n");
                                    break;
                            }
                        }
                    } while(state_exit ==0);
                    pc.printf("\n");
                    break;


                default:
                    pc.printf("plz select 1 or 2 only\n");
                    pc.printf("\n");
                    break;
            }
        }
    }
}