Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
main.cpp@3:3395362f87b8, 2018-10-19 (annotated)
- 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?
User | Revision | Line number | New 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 | } |