fra221-pb11 / Mbed 2 deprecated hw02

Dependencies:   mbed

Committer:
xkzy
Date:
Fri Oct 19 04:22:41 2018 +0000
Revision:
3:3395362f87b8
Parent:
2:77448d13dd0d
Child:
4:964ee3cf1a43
.,..;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Pitiwut 0:c8b89a6e4c0e 1 #include "mbed.h"
xkzy 1:da458f1db225 2 AnalogIn analog_value(A5);
xkzy 1:da458f1db225 3 BusOut vu_leds = (PA_3,PA_2,PA_10,PB_3,PB_5,PB_4,PB_10,PB_8);
xkzy 1:da458f1db225 4 BusOut digit1=(PA_9,PC_7,PB_6,PA_7);
xkzy 1:da458f1db225 5 BusOut digit2=(PB_0,PA_4,PA_1,PA_0);
xkzy 1:da458f1db225 6 DigitalIn user(USER_BUTTON);
xkzy 1:da458f1db225 7 DigitalOut led(LED1);
xkzy 1:da458f1db225 8 long map(long x, long in_min, long in_max, long out_min, long out_max)
xkzy 1:da458f1db225 9 {
xkzy 1:da458f1db225 10 return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
xkzy 1:da458f1db225 11 }
xkzy 1:da458f1db225 12 double power(int x,int y)
xkzy 1:da458f1db225 13 {
xkzy 2:77448d13dd0d 14 if (y>0) {
xkzy 2:77448d13dd0d 15 int z=x;
xkzy 2:77448d13dd0d 16 } else {
xkzy 2:77448d13dd0d 17 return 1
xkzy 2:77448d13dd0d 18 }
xkzy 1:da458f1db225 19 while(y>0) {
xkzy 1:da458f1db225 20 z=z*x;
xkzy 1:da458f1db225 21 y--;
xkzy 2:77448d13dd0d 22 }
xkzy 2:77448d13dd0d 23 return z;
xkzy 1:da458f1db225 24 }
xkzy 1:da458f1db225 25 void display_vu(unsigned int x)
xkzy 1:da458f1db225 26 {
xkzy 1:da458f1db225 27 int out=power(2,x)-1;
xkzy 1:da458f1db225 28 vu_leds=out;
xkzy 1:da458f1db225 29 }
xkzy 1:da458f1db225 30 void display_digits(int x)
xkzy 1:da458f1db225 31 {
xkzy 1:da458f1db225 32 digit1=x/10;
xkzy 1:da458f1db225 33 digit2=x%10;
Pitiwut 0:c8b89a6e4c0e 34
xkzy 1:da458f1db225 35 }
Pitiwut 0:c8b89a6e4c0e 36 int main()
Pitiwut 0:c8b89a6e4c0e 37 {
xkzy 1:da458f1db225 38 float adc1;
xkzy 1:da458f1db225 39 int volt1;
xkzy 1:da458f1db225 40 int volum;
xkzy 1:da458f1db225 41 bool mode;
Pitiwut 0:c8b89a6e4c0e 42 while(1) {
Pitiwut 0:c8b89a6e4c0e 43
xkzy 1:da458f1db225 44 adc1 = analog_value.read(); // Read the analog input value (value from 0.0 to 1.0 = full ADC conversion range)
xkzy 3:3395362f87b8 45 volt1 = map(adc1,0,1.0,0,33); // Converts value in the 0V-33V range
xkzy 1:da458f1db225 46 volum = map(adc1,0,1.0,0,8);
xkzy 1:da458f1db225 47 if(mode) {
xkzy 1:da458f1db225 48 display_vu(volum);
Pitiwut 0:c8b89a6e4c0e 49 } else {
xkzy 1:da458f1db225 50 display_digits(volt1);
Pitiwut 0:c8b89a6e4c0e 51 }
xkzy 1:da458f1db225 52 if(user) {
xkzy 1:da458f1db225 53 mode=!mode;
xkzy 1:da458f1db225 54 while(user);
xkzy 1:da458f1db225 55 }
Pitiwut 0:c8b89a6e4c0e 56 wait(0.2); // 200 millisecond
Pitiwut 0:c8b89a6e4c0e 57 }
Pitiwut 0:c8b89a6e4c0e 58 }