ece 4180 project 2019

Dependencies:   mbed wave_player mbed-rtos 4DGL-uLCD-SE SDFileSystem FATFileSystem

Committer:
rhuang77
Date:
Fri Apr 12 01:18:47 2019 +0000
Revision:
0:567492543056
Child:
1:549f56cb4740
new electric piano code

Who changed what in which revision?

UserRevisionLine numberNew contents of line
rhuang77 0:567492543056 1 #include <mbed.h>
rhuang77 0:567492543056 2 #include <mpr121.h>
rhuang77 0:567492543056 3 #include "mbed.h"
rhuang77 0:567492543056 4 #include "uLCD_4DGL.h"
rhuang77 0:567492543056 5 #include "SDFileSystem.h"
rhuang77 0:567492543056 6 #include "FATFileSystem.h"
rhuang77 0:567492543056 7 #include "wave_player.h"
rhuang77 0:567492543056 8 #include <stdio.h>
rhuang77 0:567492543056 9 #include "Speaker.h"
rhuang77 0:567492543056 10 DigitalOut led1(LED1);
rhuang77 0:567492543056 11 DigitalOut led2(LED2);
rhuang77 0:567492543056 12 DigitalOut led3(LED3);
rhuang77 0:567492543056 13 DigitalOut led4(LED4);
rhuang77 0:567492543056 14 // Create the interrupt receiver object on pin 26
rhuang77 0:567492543056 15 InterruptIn interrupt(p26);
rhuang77 0:567492543056 16 // Setup the i2c bus on pins 9 and 10
rhuang77 0:567492543056 17 I2C i2c(p9, p10);
rhuang77 0:567492543056 18 // Setup the Mpr121:
rhuang77 0:567492543056 19 // constructor(i2c object, i2c address of the mpr121)
rhuang77 0:567492543056 20 Mpr121 mpr121(&i2c, Mpr121::ADD_VSS);
rhuang77 0:567492543056 21
rhuang77 0:567492543056 22 SDFileSystem sd(p5, p6, p7, p8, "sd");
rhuang77 0:567492543056 23
rhuang77 0:567492543056 24 AnalogOut DACout(p18);
rhuang77 0:567492543056 25 wave_player waver(&DACout);
rhuang77 0:567492543056 26 FILE *wave_file;
rhuang77 0:567492543056 27
rhuang77 0:567492543056 28
rhuang77 0:567492543056 29 // Key hit/release interrupt routine
rhuang77 0:567492543056 30
rhuang77 0:567492543056 31 int key_code;
rhuang77 0:567492543056 32 void fallInterrupt() {
rhuang77 0:567492543056 33 key_code = 0;
rhuang77 0:567492543056 34 int i=0;
rhuang77 0:567492543056 35 int value=mpr121.read(0x00);
rhuang77 0:567492543056 36 value +=mpr121.read(0x01)<<8;
rhuang77 0:567492543056 37 // LED demo mod
rhuang77 0:567492543056 38 i=0;
rhuang77 0:567492543056 39 // puts key number out to LEDs for demo
rhuang77 0:567492543056 40 for (i=0; i<12; i++) {
rhuang77 0:567492543056 41 if (((value>>i)&0x01)==1) {
rhuang77 0:567492543056 42 key_code=i+1;
rhuang77 0:567492543056 43
rhuang77 0:567492543056 44 }
rhuang77 0:567492543056 45 }
rhuang77 0:567492543056 46 // wave_file=fopen("/sd/piano/a1.wav","r");
rhuang77 0:567492543056 47 // if(wave_file==NULL) printf("file open error!\n\n\r");
rhuang77 0:567492543056 48 // printf("test");
rhuang77 0:567492543056 49 // waver.play(wave_file);
rhuang77 0:567492543056 50 // fclose(wave_file);
rhuang77 0:567492543056 51 printf("%d", key_code);
rhuang77 0:567492543056 52 led4=key_code & 0x01;
rhuang77 0:567492543056 53 led3=(key_code>>1) & 0x01;
rhuang77 0:567492543056 54 led2=(key_code>>2) & 0x01;
rhuang77 0:567492543056 55 led1=(key_code>>3) & 0x01;
rhuang77 0:567492543056 56 }
rhuang77 0:567492543056 57
rhuang77 0:567492543056 58 int main() {
rhuang77 0:567492543056 59 // Speaker mySpeaker(p18);
rhuang77 0:567492543056 60 interrupt.fall(&fallInterrupt);
rhuang77 0:567492543056 61 interrupt.mode(PullUp);
rhuang77 0:567492543056 62 // while(1){
rhuang77 0:567492543056 63
rhuang77 0:567492543056 64 //}
rhuang77 0:567492543056 65 while (1) {
rhuang77 0:567492543056 66
rhuang77 0:567492543056 67
rhuang77 0:567492543056 68 switch(key_code) //uses a case statement for each individual touch sensor
rhuang77 0:567492543056 69 {
rhuang77 0:567492543056 70 case 1:
rhuang77 0:567492543056 71 wave_file = fopen("/sd/piano/a12.wav","r");
rhuang77 0:567492543056 72 waver.play(wave_file);
rhuang77 0:567492543056 73 fclose(wave_file);
rhuang77 0:567492543056 74 // mySpeaker.PlayNote(969.0, 0.5, 1.0);
rhuang77 0:567492543056 75 // mySpeaker.PlayNote(200.0, 0.1, 0.1);
rhuang77 0:567492543056 76 // mySpeaker.PlayNote(200.0, 0.1, 0.1);
rhuang77 0:567492543056 77
rhuang77 0:567492543056 78 // led1 = 1;
rhuang77 0:567492543056 79 break;
rhuang77 0:567492543056 80 case 2:
rhuang77 0:567492543056 81
rhuang77 0:567492543056 82 wave_file = fopen("/sd/piano/c12.wav","r");
rhuang77 0:567492543056 83 waver.play(wave_file);
rhuang77 0:567492543056 84 fclose(wave_file);
rhuang77 0:567492543056 85 //mySpeaker.PlayNote(300.0, 0.1, 0.1);
rhuang77 0:567492543056 86 // wave_file = fopen("/sd/piano_B.wav","r");
rhuang77 0:567492543056 87 // waver.play(wave_file, &PlayPtr);
rhuang77 0:567492543056 88 // fclose(wave_file);
rhuang77 0:567492543056 89 break;
rhuang77 0:567492543056 90 case 3:
rhuang77 0:567492543056 91 // mySpeaker.PlayNote(500.0, 0.15, 0.1);
rhuang77 0:567492543056 92 // wave_file = fopen("/sd/piano_A_sharp.wav","r");
rhuang77 0:567492543056 93 // waver.play(wave_file, &PlayPtr);
rhuang77 0:567492543056 94 // fclose(wave_file);
rhuang77 0:567492543056 95 break;
rhuang77 0:567492543056 96 case 4:
rhuang77 0:567492543056 97 // mySpeaker.PlayNote(700.0, 0.15, 0.1);
rhuang77 0:567492543056 98 // wave_file = fopen("/sd/Gb3.wav","r");
rhuang77 0:567492543056 99 // waver.play(wave_file, &PlayPtr);
rhuang77 0:567492543056 100 // fclose(wave_file);
rhuang77 0:567492543056 101 break;
rhuang77 0:567492543056 102 case 5:
rhuang77 0:567492543056 103 // mySpeaker.PlayNote(600.0, 0.15, 0.1);
rhuang77 0:567492543056 104 // wave_file = fopen("/sd/G3.wav","r");
rhuang77 0:567492543056 105 // waver.play(wave_file, &PlayPtr);
rhuang77 0:567492543056 106 // fclose(wave_file);
rhuang77 0:567492543056 107 break;
rhuang77 0:567492543056 108 case 6:
rhuang77 0:567492543056 109 // mySpeaker.PlayNote(969.0, 0.5, 0.5);
rhuang77 0:567492543056 110 // wave_file = fopen("/sd/F3.wav","r");
rhuang77 0:567492543056 111 // waver.play(wave_file, &PlayPtr);
rhuang77 0:567492543056 112 // fclose(wave_file);
rhuang77 0:567492543056 113 break;
rhuang77 0:567492543056 114 case 7:
rhuang77 0:567492543056 115 // mySpeaker.PlayNote(161.0, 0.25, 0.01);
rhuang77 0:567492543056 116 // wave_file = fopen("/sd/Eb4.wav","r");
rhuang77 0:567492543056 117 // waver.play(wave_file, &PlayPtr);
rhuang77 0:567492543056 118 // fclose(wave_file);
rhuang77 0:567492543056 119 break;
rhuang77 0:567492543056 120 case 8:
rhuang77 0:567492543056 121 // mySpeaker.PlayNote(869.0, 0.5, 0.5);
rhuang77 0:567492543056 122 // wave_file = fopen("/sd/Eb3.wav","r");
rhuang77 0:567492543056 123 // waver.play(wave_file, &PlayPtr);
rhuang77 0:567492543056 124 // fclose(wave_file);
rhuang77 0:567492543056 125 break;
rhuang77 0:567492543056 126 case 9:
rhuang77 0:567492543056 127 // mySpeaker.PlayNote(769.0, 0.5, 0.5);
rhuang77 0:567492543056 128 // wave_file = fopen("/sd/E3.wav","r");
rhuang77 0:567492543056 129 // waver.play(wave_file, &PlayPtr);
rhuang77 0:567492543056 130 // fclose(wave_file);
rhuang77 0:567492543056 131 break;
rhuang77 0:567492543056 132 case 10:
rhuang77 0:567492543056 133 // mySpeaker.PlayNote(669.0, 0.5, 0.5);
rhuang77 0:567492543056 134 // wave_file = fopen("/sd/Db4.wav","r");
rhuang77 0:567492543056 135 // waver.play(wave_file, &PlayPtr);
rhuang77 0:567492543056 136 // fclose(wave_file);
rhuang77 0:567492543056 137 break;
rhuang77 0:567492543056 138 case 11:
rhuang77 0:567492543056 139 // mySpeaker.PlayNote(469.0, 0.5, 0.5);
rhuang77 0:567492543056 140 // wave_file = fopen("/sd/Db3.wav","r");
rhuang77 0:567492543056 141 // waver.play(wave_file, &PlayPtr);
rhuang77 0:567492543056 142 // fclose(wave_file);
rhuang77 0:567492543056 143 break;
rhuang77 0:567492543056 144 case 12:
rhuang77 0:567492543056 145 // mySpeaker.PlayNote(969.0, 0.5, 0.5);
rhuang77 0:567492543056 146 // wave_file = fopen("/sd/D4.wav","r");
rhuang77 0:567492543056 147 // waver.play(wave_file, &PlayPtr);
rhuang77 0:567492543056 148 // fclose(wave_file);
rhuang77 0:567492543056 149 break;
rhuang77 0:567492543056 150 default:
rhuang77 0:567492543056 151 // wave_file = fopen("/sd/piano/a12.wav","r");
rhuang77 0:567492543056 152 // waver.play(wave_file);
rhuang77 0:567492543056 153 // fclose(wave_file);
rhuang77 0:567492543056 154 // mySpeaker.PlayNote(969.0, 0, 0);
rhuang77 0:567492543056 155 break;
rhuang77 0:567492543056 156 }
rhuang77 0:567492543056 157 }
rhuang77 0:567492543056 158 }
rhuang77 0:567492543056 159