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;
      }
}
}