Music-Lab3
Dependencies: mbed
main.cpp@0:104065487410, 2016-10-07 (annotated)
- Committer:
- ziadeldebri
- Date:
- Fri Oct 07 02:59:28 2016 +0000
- Revision:
- 0:104065487410
Simple Music Tones.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
ziadeldebri | 0:104065487410 | 1 | /*************** |
ziadeldebri | 0:104065487410 | 2 | *Lab3 ECE111 |
ziadeldebri | 0:104065487410 | 3 | ****************/ |
ziadeldebri | 0:104065487410 | 4 | |
ziadeldebri | 0:104065487410 | 5 | #include "mbed.h" |
ziadeldebri | 0:104065487410 | 6 | |
ziadeldebri | 0:104065487410 | 7 | |
ziadeldebri | 0:104065487410 | 8 | AnalogIn pot(PTB0); |
ziadeldebri | 0:104065487410 | 9 | PwmOut Speaker(PTE31); |
ziadeldebri | 0:104065487410 | 10 | InterruptIn button(PTC12); |
ziadeldebri | 0:104065487410 | 11 | |
ziadeldebri | 0:104065487410 | 12 | |
ziadeldebri | 0:104065487410 | 13 | |
ziadeldebri | 0:104065487410 | 14 | int i,mode; |
ziadeldebri | 0:104065487410 | 15 | |
ziadeldebri | 0:104065487410 | 16 | float freq[] = {2272, 2144, 2016, 1904, 1808, 1696, 1600, 1520, 1424, 1344, 1280, 1200, 1136, 1072,1008, 960, 896, 848, 800, 752, 704, 672,624, 592, 550}; |
ziadeldebri | 0:104065487410 | 17 | |
ziadeldebri | 0:104065487410 | 18 | float beat[] ={1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}; |
ziadeldebri | 0:104065487410 | 19 | |
ziadeldebri | 0:104065487410 | 20 | void flip() { |
ziadeldebri | 0:104065487410 | 21 | mode = !mode; |
ziadeldebri | 0:104065487410 | 22 | } |
ziadeldebri | 0:104065487410 | 23 | |
ziadeldebri | 0:104065487410 | 24 | |
ziadeldebri | 0:104065487410 | 25 | int main() |
ziadeldebri | 0:104065487410 | 26 | { |
ziadeldebri | 0:104065487410 | 27 | mode = 1; |
ziadeldebri | 0:104065487410 | 28 | button.rise(&flip); // attach the address of the flip function to the rising edge |
ziadeldebri | 0:104065487410 | 29 | while (true) { |
ziadeldebri | 0:104065487410 | 30 | |
ziadeldebri | 0:104065487410 | 31 | if(mode == 1){ |
ziadeldebri | 0:104065487410 | 32 | for (int i = 0; i <=20 ; i++){ |
ziadeldebri | 0:104065487410 | 33 | Speaker.period(1/(2*freq[i])); |
ziadeldebri | 0:104065487410 | 34 | Speaker = 0.5; |
ziadeldebri | 0:104065487410 | 35 | wait (0.4*beat[1]); |
ziadeldebri | 0:104065487410 | 36 | if(mode == 0){break;} |
ziadeldebri | 0:104065487410 | 37 | } |
ziadeldebri | 0:104065487410 | 38 | } |
ziadeldebri | 0:104065487410 | 39 | else if (mode == 0){ |
ziadeldebri | 0:104065487410 | 40 | Speaker.period(1/(pot*2000+20)); |
ziadeldebri | 0:104065487410 | 41 | Speaker = 0.5; |
ziadeldebri | 0:104065487410 | 42 | wait (0.4*beat[1]); |
ziadeldebri | 0:104065487410 | 43 | |
ziadeldebri | 0:104065487410 | 44 | } |
ziadeldebri | 0:104065487410 | 45 | |
ziadeldebri | 0:104065487410 | 46 | |
ziadeldebri | 0:104065487410 | 47 | } |
ziadeldebri | 0:104065487410 | 48 | } |