christophe vermaelen
/
MP3_Grove
V1 MP3 en liaison série
main.cpp@0:8dd35bae21bb, 2022-05-14 (annotated)
- Committer:
- vermaelen
- Date:
- Sat May 14 07:45:22 2022 +0000
- Revision:
- 0:8dd35bae21bb
V1
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
vermaelen | 0:8dd35bae21bb | 1 | #include "mbed.h" |
vermaelen | 0:8dd35bae21bb | 2 | #include "mp3.h" |
vermaelen | 0:8dd35bae21bb | 3 | //Serial mp3(PTE22,PTE23); |
vermaelen | 0:8dd35bae21bb | 4 | Serial mp3(D14,D15); |
vermaelen | 0:8dd35bae21bb | 5 | DigitalOut myled(LED1); |
vermaelen | 0:8dd35bae21bb | 6 | int choix; |
vermaelen | 0:8dd35bae21bb | 7 | int volume=16; |
vermaelen | 0:8dd35bae21bb | 8 | |
vermaelen | 0:8dd35bae21bb | 9 | int main() |
vermaelen | 0:8dd35bae21bb | 10 | { |
vermaelen | 0:8dd35bae21bb | 11 | while(1) { |
vermaelen | 0:8dd35bae21bb | 12 | printf("1-play/pause 2-stop 3-next 4-previous\n\r"); |
vermaelen | 0:8dd35bae21bb | 13 | printf("faites votre choix :"); |
vermaelen | 0:8dd35bae21bb | 14 | scanf("%d",&choix); |
vermaelen | 0:8dd35bae21bb | 15 | printf("%d\n\n\n\r",choix); |
vermaelen | 0:8dd35bae21bb | 16 | switch(choix) { |
vermaelen | 0:8dd35bae21bb | 17 | case 1: |
vermaelen | 0:8dd35bae21bb | 18 | playpause(); |
vermaelen | 0:8dd35bae21bb | 19 | break; |
vermaelen | 0:8dd35bae21bb | 20 | case 2: |
vermaelen | 0:8dd35bae21bb | 21 | stop(); |
vermaelen | 0:8dd35bae21bb | 22 | break; |
vermaelen | 0:8dd35bae21bb | 23 | case 3: |
vermaelen | 0:8dd35bae21bb | 24 | next(); |
vermaelen | 0:8dd35bae21bb | 25 | break; |
vermaelen | 0:8dd35bae21bb | 26 | case 4: |
vermaelen | 0:8dd35bae21bb | 27 | previous(); |
vermaelen | 0:8dd35bae21bb | 28 | break; |
vermaelen | 0:8dd35bae21bb | 29 | case 9: |
vermaelen | 0:8dd35bae21bb | 30 | up(); |
vermaelen | 0:8dd35bae21bb | 31 | break; |
vermaelen | 0:8dd35bae21bb | 32 | case 6: |
vermaelen | 0:8dd35bae21bb | 33 | down(); |
vermaelen | 0:8dd35bae21bb | 34 | break; |
vermaelen | 0:8dd35bae21bb | 35 | case 5: |
vermaelen | 0:8dd35bae21bb | 36 | number(5); |
vermaelen | 0:8dd35bae21bb | 37 | break; |
vermaelen | 0:8dd35bae21bb | 38 | case 7: |
vermaelen | 0:8dd35bae21bb | 39 | number(7); |
vermaelen | 0:8dd35bae21bb | 40 | break; |
vermaelen | 0:8dd35bae21bb | 41 | } |
vermaelen | 0:8dd35bae21bb | 42 | myled.write(!myled.read()); |
vermaelen | 0:8dd35bae21bb | 43 | |
vermaelen | 0:8dd35bae21bb | 44 | } |
vermaelen | 0:8dd35bae21bb | 45 | } |
vermaelen | 0:8dd35bae21bb | 46 | |
vermaelen | 0:8dd35bae21bb | 47 | void playpause() |
vermaelen | 0:8dd35bae21bb | 48 | { |
vermaelen | 0:8dd35bae21bb | 49 | mp3.putc(0x7E); |
vermaelen | 0:8dd35bae21bb | 50 | wait_ms(5); |
vermaelen | 0:8dd35bae21bb | 51 | mp3.putc(0x03); |
vermaelen | 0:8dd35bae21bb | 52 | wait_ms(5); |
vermaelen | 0:8dd35bae21bb | 53 | mp3.putc(0xAA); |
vermaelen | 0:8dd35bae21bb | 54 | wait_ms(5); |
vermaelen | 0:8dd35bae21bb | 55 | mp3.putc(0xAD); |
vermaelen | 0:8dd35bae21bb | 56 | wait_ms(5); |
vermaelen | 0:8dd35bae21bb | 57 | mp3.putc(0xEF); |
vermaelen | 0:8dd35bae21bb | 58 | wait_ms(5); |
vermaelen | 0:8dd35bae21bb | 59 | } |
vermaelen | 0:8dd35bae21bb | 60 | |
vermaelen | 0:8dd35bae21bb | 61 | void stop() |
vermaelen | 0:8dd35bae21bb | 62 | { |
vermaelen | 0:8dd35bae21bb | 63 | mp3.putc(0x7E); |
vermaelen | 0:8dd35bae21bb | 64 | wait_ms(5); |
vermaelen | 0:8dd35bae21bb | 65 | mp3.putc(0x03); |
vermaelen | 0:8dd35bae21bb | 66 | wait_ms(5); |
vermaelen | 0:8dd35bae21bb | 67 | mp3.putc(0xAB); |
vermaelen | 0:8dd35bae21bb | 68 | wait_ms(5); |
vermaelen | 0:8dd35bae21bb | 69 | mp3.putc(0xAE); |
vermaelen | 0:8dd35bae21bb | 70 | wait_ms(5); |
vermaelen | 0:8dd35bae21bb | 71 | mp3.putc(0xEF); |
vermaelen | 0:8dd35bae21bb | 72 | wait_ms(5); |
vermaelen | 0:8dd35bae21bb | 73 | } |
vermaelen | 0:8dd35bae21bb | 74 | |
vermaelen | 0:8dd35bae21bb | 75 | void next() |
vermaelen | 0:8dd35bae21bb | 76 | { |
vermaelen | 0:8dd35bae21bb | 77 | mp3.putc(0x7E); |
vermaelen | 0:8dd35bae21bb | 78 | wait_ms(5); |
vermaelen | 0:8dd35bae21bb | 79 | mp3.putc(0x03); |
vermaelen | 0:8dd35bae21bb | 80 | wait_ms(5); |
vermaelen | 0:8dd35bae21bb | 81 | mp3.putc(0xAC); |
vermaelen | 0:8dd35bae21bb | 82 | wait_ms(5); |
vermaelen | 0:8dd35bae21bb | 83 | mp3.putc(0xAF); |
vermaelen | 0:8dd35bae21bb | 84 | wait_ms(5); |
vermaelen | 0:8dd35bae21bb | 85 | mp3.putc(0xEF); |
vermaelen | 0:8dd35bae21bb | 86 | wait_ms(5); |
vermaelen | 0:8dd35bae21bb | 87 | } |
vermaelen | 0:8dd35bae21bb | 88 | |
vermaelen | 0:8dd35bae21bb | 89 | void previous() |
vermaelen | 0:8dd35bae21bb | 90 | { |
vermaelen | 0:8dd35bae21bb | 91 | mp3.putc(0x7E); |
vermaelen | 0:8dd35bae21bb | 92 | wait_ms(5); |
vermaelen | 0:8dd35bae21bb | 93 | mp3.putc(0x03); |
vermaelen | 0:8dd35bae21bb | 94 | wait_ms(5); |
vermaelen | 0:8dd35bae21bb | 95 | mp3.putc(0xAD); |
vermaelen | 0:8dd35bae21bb | 96 | wait_ms(5); |
vermaelen | 0:8dd35bae21bb | 97 | mp3.putc(0xB0); |
vermaelen | 0:8dd35bae21bb | 98 | wait_ms(5); |
vermaelen | 0:8dd35bae21bb | 99 | mp3.putc(0xEF); |
vermaelen | 0:8dd35bae21bb | 100 | wait_ms(5); |
vermaelen | 0:8dd35bae21bb | 101 | } |
vermaelen | 0:8dd35bae21bb | 102 | void up() |
vermaelen | 0:8dd35bae21bb | 103 | { |
vermaelen | 0:8dd35bae21bb | 104 | int sum; |
vermaelen | 0:8dd35bae21bb | 105 | volume=volume+1; |
vermaelen | 0:8dd35bae21bb | 106 | if(volume>31)volume=31; |
vermaelen | 0:8dd35bae21bb | 107 | sum=178+volume; |
vermaelen | 0:8dd35bae21bb | 108 | printf("volume=%x sum=%x\n\r",(char)volume,(char)sum); |
vermaelen | 0:8dd35bae21bb | 109 | mp3.putc(0x7E); |
vermaelen | 0:8dd35bae21bb | 110 | wait_ms(5); |
vermaelen | 0:8dd35bae21bb | 111 | mp3.putc(0x04); |
vermaelen | 0:8dd35bae21bb | 112 | wait_ms(5); |
vermaelen | 0:8dd35bae21bb | 113 | mp3.putc(0xAE); |
vermaelen | 0:8dd35bae21bb | 114 | wait_ms(5); |
vermaelen | 0:8dd35bae21bb | 115 | mp3.putc((char)volume); |
vermaelen | 0:8dd35bae21bb | 116 | wait_ms(5); |
vermaelen | 0:8dd35bae21bb | 117 | mp3.putc((char)sum); |
vermaelen | 0:8dd35bae21bb | 118 | wait_ms(5); |
vermaelen | 0:8dd35bae21bb | 119 | mp3.putc(0xEF); |
vermaelen | 0:8dd35bae21bb | 120 | wait_ms(5); |
vermaelen | 0:8dd35bae21bb | 121 | } |
vermaelen | 0:8dd35bae21bb | 122 | void down() |
vermaelen | 0:8dd35bae21bb | 123 | { |
vermaelen | 0:8dd35bae21bb | 124 | int sum; |
vermaelen | 0:8dd35bae21bb | 125 | volume=volume-1; |
vermaelen | 0:8dd35bae21bb | 126 | |
vermaelen | 0:8dd35bae21bb | 127 | if(volume<0)volume=0; |
vermaelen | 0:8dd35bae21bb | 128 | |
vermaelen | 0:8dd35bae21bb | 129 | sum=volume+178; |
vermaelen | 0:8dd35bae21bb | 130 | printf("volume=%x sum=%x\n\r",(char)volume,(char)sum); |
vermaelen | 0:8dd35bae21bb | 131 | mp3.putc(0x7E); |
vermaelen | 0:8dd35bae21bb | 132 | wait_ms(5); |
vermaelen | 0:8dd35bae21bb | 133 | mp3.putc(0x04); |
vermaelen | 0:8dd35bae21bb | 134 | wait_ms(5); |
vermaelen | 0:8dd35bae21bb | 135 | mp3.putc(0xAE); |
vermaelen | 0:8dd35bae21bb | 136 | wait_ms(5); |
vermaelen | 0:8dd35bae21bb | 137 | mp3.putc((char)volume); |
vermaelen | 0:8dd35bae21bb | 138 | wait_ms(5); |
vermaelen | 0:8dd35bae21bb | 139 | mp3.putc((char)sum); |
vermaelen | 0:8dd35bae21bb | 140 | wait_ms(5); |
vermaelen | 0:8dd35bae21bb | 141 | mp3.putc(0xEF); |
vermaelen | 0:8dd35bae21bb | 142 | wait_ms(5); |
vermaelen | 0:8dd35bae21bb | 143 | } |
vermaelen | 0:8dd35bae21bb | 144 | |
vermaelen | 0:8dd35bae21bb | 145 | void number(int nb) |
vermaelen | 0:8dd35bae21bb | 146 | { |
vermaelen | 0:8dd35bae21bb | 147 | int sum=nb+5+0+0xA2; |
vermaelen | 0:8dd35bae21bb | 148 | printf("Ok, jouons la piste %d\n\r",nb); |
vermaelen | 0:8dd35bae21bb | 149 | mp3.putc(0x7E); |
vermaelen | 0:8dd35bae21bb | 150 | wait_ms(5); |
vermaelen | 0:8dd35bae21bb | 151 | mp3.putc(0x05); |
vermaelen | 0:8dd35bae21bb | 152 | wait_ms(5); |
vermaelen | 0:8dd35bae21bb | 153 | mp3.putc(0xA2); |
vermaelen | 0:8dd35bae21bb | 154 | wait_ms(5); |
vermaelen | 0:8dd35bae21bb | 155 | mp3.putc(0x00); |
vermaelen | 0:8dd35bae21bb | 156 | wait_ms(5); |
vermaelen | 0:8dd35bae21bb | 157 | mp3.putc((char)nb); |
vermaelen | 0:8dd35bae21bb | 158 | wait_ms(5); |
vermaelen | 0:8dd35bae21bb | 159 | mp3.putc((char)sum); |
vermaelen | 0:8dd35bae21bb | 160 | wait_ms(5); |
vermaelen | 0:8dd35bae21bb | 161 | mp3.putc(0xEF); |
vermaelen | 0:8dd35bae21bb | 162 | wait_ms(5); |
vermaelen | 0:8dd35bae21bb | 163 | } |