Beep RTTL done + ints.

Dependencies:   MCP23017 aconno_bsp beep_2

Fork of acd52832_beep_buzzer by Jurica Resetar

main.cpp

Committer:
jurica238814
Date:
2016-09-23
Revision:
2:bc9245345c12
Parent:
0:79fc9d7d880f

File content as of revision 2:bc9245345c12:

  #include "mbed.h"
 #include "beep.h"
 #include "acd52832_bsp.h"
 #include "notes.h"
 #include "MCP23017.h"
 
 #define CENTER 7

 
 
 Beep buzzer(PIN_BUZZER);
 //DigitalOut LED (p26);
 DigitalOut RED (PIN_LED_RED);
 DigitalOut GREEN (PIN_LED_GREEN);
 MCP23017 expdr = MCP23017(PIN_EXP_SDA, PIN_EXP_SCL, TWI_EXPANDER_ADDR);
 InterruptIn button(PIN_EXP_INT_A);
 InterruptIn button2(p26);

char *song = "Greensleaves:d=4,o=5,b=140:g,2a#,c6,d.6,8d#6,d6,2c6,a,f.,8g,a,2a#,g,g.,8f,g,2a,f,2d,g,2a#,c6,d.6,8e6,d6,2c6,a,f.,8g,a,a#.,8a,g,f#.,8e,f#,2g";

void toggle(){
    
    // Disable ints
    /*
    char cmd[3];
    cmd[0] = GPINTEN;
    cmd[1] = 0x00;
    cmd[2] = 0x00;
    */
    //i2c.write(addr, cmd, 2);
    buzzer.nobeep();
    GREEN = !GREEN;
    setInt();
    //i2c.write(TWI_EXPANDER_ADDR, cmd, 3, false);
    //expdr.writeRegister(GPINTEN, (unsigned short)0x0000);
    
    return;
    //expdr.write_bit(0, 10);
    //wait(0.5);
    
    
    //expdr.readRegister(GPIO);
    //expdr.read_bit(CENTER);
    //expdr.readRegister(INTCAP);
    //wait(0.5);
    /*
    while (1){
        GREEN = ! GREEN;
        wait(0.6);
        }
    */  
    
    // Enable ints
    //expdr.writeRegister(GPINTEN, (unsigned short)0x0080);
    }
    

int main(){

  // Init IO expander
  expdr.reset();                              //Restarts the expander to return it to default states
  expdr.config(0x01F8, 0xFFFF, 0x0000);
  wait(0.1);
  // Configure interrupts on JOYSTICK_CENTER pin 
  //expdr.writeRegister(IOCON, (unsigned char)0x26);
  expdr.writeRegister(INTCON, (unsigned short)0x00FF);
  expdr.writeRegister(DEFVAL, (unsigned short)0x0180);
  expdr.writeRegister(GPINTEN, (unsigned short)0x0080);
    
  button.fall(&toggle);
  button.rise(&toggle);
  //button2.rise(&toggle);
  //button2.fall(&toggle);
  
  RED = 1;
  GREEN = 1;
  buzzer.playRttl(song);
  RED = 0;
  
  while(1){
      RED = 0;
      wait(0.1);
      RED = 1;
      wait(0.1);
      }
}