Beep RTTL done + ints.
Dependencies: MCP23017 aconno_bsp beep_2
Fork of acd52832_beep_buzzer by
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); } }