LAB2 FRA221

Dependencies:   mbed

Committer:
Pairam
Date:
Tue Oct 31 14:11:46 2017 +0000
Revision:
0:bfa79f935a5b
LAB2

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Pairam 0:bfa79f935a5b 1 #include "mbed.h"
Pairam 0:bfa79f935a5b 2
Pairam 0:bfa79f935a5b 3 AnalogIn analog_value(A1);
Pairam 0:bfa79f935a5b 4 BusOut segOut1(D11, D10);
Pairam 0:bfa79f935a5b 5 BusOut segOut2(D15, D14,D13,D12);
Pairam 0:bfa79f935a5b 6 BusOut lab1(D9, D8, D7, D6, D5, D4, D3, D2);
Pairam 0:bfa79f935a5b 7 DigitalIn Inled(USER_BUTTON);
Pairam 0:bfa79f935a5b 8 Serial pc(SERIAL_TX, SERIAL_RX);
Pairam 0:bfa79f935a5b 9
Pairam 0:bfa79f935a5b 10 void segment()
Pairam 0:bfa79f935a5b 11 {
Pairam 0:bfa79f935a5b 12 float analog;
Pairam 0:bfa79f935a5b 13 analog = analog_value.read();
Pairam 0:bfa79f935a5b 14 int volt = analog * 3300;
Pairam 0:bfa79f935a5b 15 int divide = volt/1000;
Pairam 0:bfa79f935a5b 16 int unit = (volt % 1000)/100;
Pairam 0:bfa79f935a5b 17 segOut1 = divide;
Pairam 0:bfa79f935a5b 18 segOut2 = unit;
Pairam 0:bfa79f935a5b 19 lab1 = 0;
Pairam 0:bfa79f935a5b 20 // wait(0.4);
Pairam 0:bfa79f935a5b 21 }
Pairam 0:bfa79f935a5b 22
Pairam 0:bfa79f935a5b 23 void ledout()
Pairam 0:bfa79f935a5b 24 {
Pairam 0:bfa79f935a5b 25 float analog;
Pairam 0:bfa79f935a5b 26 int volt33000,bin_value;
Pairam 0:bfa79f935a5b 27 analog = analog_value.read();
Pairam 0:bfa79f935a5b 28 volt33000 = analog*33000;
Pairam 0:bfa79f935a5b 29
Pairam 0:bfa79f935a5b 30 if (volt33000 >= 33000/8*8) {
Pairam 0:bfa79f935a5b 31 bin_value = 256-1;
Pairam 0:bfa79f935a5b 32 } else if (volt33000 >= 33000/8*7) {
Pairam 0:bfa79f935a5b 33 bin_value = 128-1;
Pairam 0:bfa79f935a5b 34 } else if (volt33000 >= 33000/8*6) {
Pairam 0:bfa79f935a5b 35 bin_value = 64-1;
Pairam 0:bfa79f935a5b 36 } else if (volt33000 >= 33000/8*5) {
Pairam 0:bfa79f935a5b 37 bin_value = 32-1;
Pairam 0:bfa79f935a5b 38 } else if (volt33000 >= 33000/8*4) {
Pairam 0:bfa79f935a5b 39 bin_value = 16-1;
Pairam 0:bfa79f935a5b 40 } else if (volt33000 >= 33000/8*3) {
Pairam 0:bfa79f935a5b 41 bin_value = 8-1;
Pairam 0:bfa79f935a5b 42 } else if (volt33000 >= 33000/8*2) {
Pairam 0:bfa79f935a5b 43 bin_value = 4-1;
Pairam 0:bfa79f935a5b 44 } else if (volt33000 >= 33000/8*1) {
Pairam 0:bfa79f935a5b 45 bin_value = 2-1;
Pairam 0:bfa79f935a5b 46 } else if (volt33000 >= 33000/8*0) {
Pairam 0:bfa79f935a5b 47 bin_value = 1-1;
Pairam 0:bfa79f935a5b 48 }
Pairam 0:bfa79f935a5b 49 lab1 = bin_value;
Pairam 0:bfa79f935a5b 50 segOut1 = 0;
Pairam 0:bfa79f935a5b 51 segOut2 = 0;
Pairam 0:bfa79f935a5b 52
Pairam 0:bfa79f935a5b 53 }
Pairam 0:bfa79f935a5b 54
Pairam 0:bfa79f935a5b 55 int main()
Pairam 0:bfa79f935a5b 56 {
Pairam 0:bfa79f935a5b 57 int state = 0;
Pairam 0:bfa79f935a5b 58
Pairam 0:bfa79f935a5b 59 while(1) {
Pairam 0:bfa79f935a5b 60 if (Inled == 0 && state == 1) {
Pairam 0:bfa79f935a5b 61 state = 0; //lab1
Pairam 0:bfa79f935a5b 62 } else if (Inled == 0 && state == 0) {
Pairam 0:bfa79f935a5b 63 state = 1; //lab2
Pairam 0:bfa79f935a5b 64 }
Pairam 0:bfa79f935a5b 65
Pairam 0:bfa79f935a5b 66 if (state == 0) {
Pairam 0:bfa79f935a5b 67 ledout();
Pairam 0:bfa79f935a5b 68 } else if (state == 1) {
Pairam 0:bfa79f935a5b 69 segment();
Pairam 0:bfa79f935a5b 70 }
Pairam 0:bfa79f935a5b 71 }
Pairam 0:bfa79f935a5b 72 }