ece 4180 project 2019
Dependencies: mbed wave_player mbed-rtos 4DGL-uLCD-SE SDFileSystem FATFileSystem
main.cpp
- Committer:
- rhuang77
- Date:
- 2019-04-12
- Revision:
- 0:567492543056
- Child:
- 1:549f56cb4740
File content as of revision 0:567492543056:
#include <mbed.h> #include <mpr121.h> #include "mbed.h" #include "uLCD_4DGL.h" #include "SDFileSystem.h" #include "FATFileSystem.h" #include "wave_player.h" #include <stdio.h> #include "Speaker.h" DigitalOut led1(LED1); DigitalOut led2(LED2); DigitalOut led3(LED3); DigitalOut led4(LED4); // Create the interrupt receiver object on pin 26 InterruptIn interrupt(p26); // Setup the i2c bus on pins 9 and 10 I2C i2c(p9, p10); // Setup the Mpr121: // constructor(i2c object, i2c address of the mpr121) Mpr121 mpr121(&i2c, Mpr121::ADD_VSS); SDFileSystem sd(p5, p6, p7, p8, "sd"); AnalogOut DACout(p18); wave_player waver(&DACout); FILE *wave_file; // Key hit/release interrupt routine int key_code; void fallInterrupt() { key_code = 0; int i=0; int value=mpr121.read(0x00); value +=mpr121.read(0x01)<<8; // LED demo mod i=0; // puts key number out to LEDs for demo for (i=0; i<12; i++) { if (((value>>i)&0x01)==1) { key_code=i+1; } } // wave_file=fopen("/sd/piano/a1.wav","r"); // if(wave_file==NULL) printf("file open error!\n\n\r"); // printf("test"); // waver.play(wave_file); // fclose(wave_file); printf("%d", key_code); led4=key_code & 0x01; led3=(key_code>>1) & 0x01; led2=(key_code>>2) & 0x01; led1=(key_code>>3) & 0x01; } int main() { // Speaker mySpeaker(p18); interrupt.fall(&fallInterrupt); interrupt.mode(PullUp); // while(1){ //} while (1) { switch(key_code) //uses a case statement for each individual touch sensor { case 1: wave_file = fopen("/sd/piano/a12.wav","r"); waver.play(wave_file); fclose(wave_file); // mySpeaker.PlayNote(969.0, 0.5, 1.0); // mySpeaker.PlayNote(200.0, 0.1, 0.1); // mySpeaker.PlayNote(200.0, 0.1, 0.1); // led1 = 1; break; case 2: wave_file = fopen("/sd/piano/c12.wav","r"); waver.play(wave_file); fclose(wave_file); //mySpeaker.PlayNote(300.0, 0.1, 0.1); // wave_file = fopen("/sd/piano_B.wav","r"); // waver.play(wave_file, &PlayPtr); // fclose(wave_file); break; case 3: // mySpeaker.PlayNote(500.0, 0.15, 0.1); // wave_file = fopen("/sd/piano_A_sharp.wav","r"); // waver.play(wave_file, &PlayPtr); // fclose(wave_file); break; case 4: // mySpeaker.PlayNote(700.0, 0.15, 0.1); // wave_file = fopen("/sd/Gb3.wav","r"); // waver.play(wave_file, &PlayPtr); // fclose(wave_file); break; case 5: // mySpeaker.PlayNote(600.0, 0.15, 0.1); // wave_file = fopen("/sd/G3.wav","r"); // waver.play(wave_file, &PlayPtr); // fclose(wave_file); break; case 6: // mySpeaker.PlayNote(969.0, 0.5, 0.5); // wave_file = fopen("/sd/F3.wav","r"); // waver.play(wave_file, &PlayPtr); // fclose(wave_file); break; case 7: // mySpeaker.PlayNote(161.0, 0.25, 0.01); // wave_file = fopen("/sd/Eb4.wav","r"); // waver.play(wave_file, &PlayPtr); // fclose(wave_file); break; case 8: // mySpeaker.PlayNote(869.0, 0.5, 0.5); // wave_file = fopen("/sd/Eb3.wav","r"); // waver.play(wave_file, &PlayPtr); // fclose(wave_file); break; case 9: // mySpeaker.PlayNote(769.0, 0.5, 0.5); // wave_file = fopen("/sd/E3.wav","r"); // waver.play(wave_file, &PlayPtr); // fclose(wave_file); break; case 10: // mySpeaker.PlayNote(669.0, 0.5, 0.5); // wave_file = fopen("/sd/Db4.wav","r"); // waver.play(wave_file, &PlayPtr); // fclose(wave_file); break; case 11: // mySpeaker.PlayNote(469.0, 0.5, 0.5); // wave_file = fopen("/sd/Db3.wav","r"); // waver.play(wave_file, &PlayPtr); // fclose(wave_file); break; case 12: // mySpeaker.PlayNote(969.0, 0.5, 0.5); // wave_file = fopen("/sd/D4.wav","r"); // waver.play(wave_file, &PlayPtr); // fclose(wave_file); break; default: // wave_file = fopen("/sd/piano/a12.wav","r"); // waver.play(wave_file); // fclose(wave_file); // mySpeaker.PlayNote(969.0, 0, 0); break; } } }