plays mario theme song using pwm signals

Dependencies:   BSP_DISCO_L476VG LCD_DISCO_L476VG mbed

main.cpp

Committer:
steeler331
Date:
2018-04-26
Revision:
0:aec7ae52d9e3

File content as of revision 0:aec7ae52d9e3:

#include "mbed.h"

PwmOut mypwm(PWM_OUT);

#define UP 1
#define DOWN 2

void noteC_octave4 (void)
{
    mypwm.period_us(3788);
    mypwm.pulsewidth_us(1894);
}

void noteD_octave4 (void)
{
    mypwm.period_us(3367);
    mypwm.pulsewidth_us(1683);
}

void noteE_octave4 (void)
{
    mypwm.period_us(3030);
    mypwm.pulsewidth_us(1515);
}

void noteF_octave4 (void)
{
    mypwm.period_us(2841);
    mypwm.pulsewidth_us(1420);
}

void noteG_octave4 (void)
{
    mypwm.period_us(2525);
    mypwm.pulsewidth_us(1262);
}

void noteA_octave4 (void)
{
    mypwm.period_us(2273);
    mypwm.pulsewidth_us(1136);
}

void noteAsharp_octave4 (void)
{
    mypwm.period_us(2146);
    mypwm.pulsewidth_us(1073);
}
 
 void no_frequency (void)
{
    mypwm.period_ms(1000);
    mypwm.pulsewidth_ms(500);
}  

void noteE5 (void)
{
    mypwm.period_us(1515);
    mypwm.pulsewidth_us(757);
} 

void noteC5 (void)
{
    mypwm.period_us(1961);
    mypwm.pulsewidth_us(980);
} 

void noteG5 (void)
{
    mypwm.period_us(1299);
    mypwm.pulsewidth_us(649);
} 

void noteFsharp4 (void)
{
    mypwm.period_us(2632);
    mypwm.pulsewidth_us(1316);
} 

void noteDsharp4 (void)
{
    mypwm.period_us(3125);
    mypwm.pulsewidth_us(1562);
} 

void noteLB4 (void)
{
    mypwm.period_us(2083);
    mypwm.pulsewidth_us(1041);
} 

void noteA4 (void)
{
    mypwm.period_us(2272);
    mypwm.pulsewidth_us(1136);
} 

void noteHA4 (void)
{
    mypwm.period_us(2222);
    mypwm.pulsewidth_us(1111);
} 

void noteLA4 (void)
{
    mypwm.period_us(2325);
    mypwm.pulsewidth_us(1162);
} 

void noteFsharp5 (void)
{
    mypwm.period_us(1316);
    mypwm.pulsewidth_us(658);
} 

void noteA5 (void)
{
    mypwm.period_us(1162);
    mypwm.pulsewidth_us(581);
} 

void noteF5 (void)
{
    mypwm.period_us(1428);
    mypwm.pulsewidth_us(714);
} 

void noteHC5 (void)
{
    mypwm.period_us(1923);
    mypwm.pulsewidth_us(861);
} 

void noteD5 (void)
{
    mypwm.period_us(1724);
    mypwm.pulsewidth_us(862);
} 

void noteB4 (void)
{
    mypwm.period_us(2000);
    mypwm.pulsewidth_us(1000);
} 

void noteLFsharp5 (void)
{
    mypwm.period_us(1388);
    mypwm.pulsewidth_us(694);
} 

void noteLF5 (void)
{
    mypwm.period_us(1470);
    mypwm.pulsewidth_us(735);
} 

void noteDsharp5 (void)
{
    mypwm.period_us(1613);
    mypwm.pulsewidth_us(807);
} 

void noteLE5 (void)
{
    mypwm.period_us(1538);
    mypwm.pulsewidth_us(769);
} 

void noteCsharp5 (void)
{
    mypwm.period_us(1754);
    mypwm.pulsewidth_us(877);
} 

void noteC6 (void)
{
    mypwm.period_us(980);
    mypwm.pulsewidth_us(490);
} 

void noteHD5 (void)
{
    mypwm.period_us(1709);
    mypwm.pulsewidth_us(854);
    
}  

void noteLCsharp5 (void)
{
    mypwm.period_us(1818);
    mypwm.pulsewidth_us(909);
    
}  

void noteHA5 (void)
{
    mypwm.period_us(1149);
    mypwm.pulsewidth_us(574);
    
}  

int main() {
    
noteE5();
wait_ms(100);

no_frequency();
wait_ms(150);

noteE5();
wait_ms(100);

no_frequency();
wait_ms(300);

noteE5();
wait_ms(100);

no_frequency();
wait_ms(300);

noteC5();
wait_ms(100);

no_frequency();
wait_ms(100);

noteE5();
wait_ms(100);

no_frequency();
wait_ms(300);

noteG5();
wait_ms(100);

no_frequency();
wait_ms(550);

noteFsharp4();
wait_ms(100);

no_frequency();
wait_ms(575);

noteC5();
wait_ms(100);

no_frequency();
wait_ms(450);

noteFsharp4();
wait_ms(100);

no_frequency();
wait_ms(400);

noteDsharp4();
wait_ms(100);

no_frequency();
wait_ms(500);

noteA4();
wait_ms(100);

no_frequency();
wait_ms(300);

noteB4();
wait_ms(80);

no_frequency();
wait_ms(330);

noteHA4();
wait_ms(100);

no_frequency();
wait_ms(150);

noteLA4();
wait_ms(100);

no_frequency();
wait_ms(300);

noteFsharp4();
wait_ms(100);

no_frequency();
wait_ms(200);

noteE5();
wait_ms(80);

no_frequency();
wait_ms(200);

noteFsharp5();
wait_ms(50);

no_frequency();
wait_ms(150);

noteA5();
wait_ms(100);

no_frequency();
wait_ms(300);

noteF5();
wait_ms(80);

no_frequency();
wait_ms(150);

noteFsharp5();
wait_ms(50);

no_frequency();
wait_ms(350);

noteE5();
wait_ms(80);

no_frequency();
wait_ms(300);

noteHC5();
wait_ms(80);

no_frequency();
wait_ms(150);

noteD5();
wait_ms(80);

no_frequency();
wait_ms(150);

noteLB4();
wait_ms(80);

no_frequency();
wait_ms(500);

noteC5();
wait_ms(100);

no_frequency();
wait_ms(450);

noteFsharp4();
wait_ms(100);

no_frequency();
wait_ms(400);

noteDsharp4();
wait_ms(100);

no_frequency();
wait_ms(500);

noteA4();
wait_ms(100);

no_frequency();
wait_ms(300);

noteLB4();
wait_ms(80);

no_frequency();
wait_ms(330);

noteHA4();
wait_ms(100);

no_frequency();
wait_ms(150);

noteLA4();
wait_ms(100);

no_frequency();
wait_ms(300);

noteFsharp4();
wait_ms(100);

no_frequency();
wait_ms(200);

noteE5();
wait_ms(80);

no_frequency();
wait_ms(200);

noteFsharp5();
wait_ms(50);

no_frequency();
wait_ms(150);

noteA5();
wait_ms(100);

no_frequency();
wait_ms(300);

noteF5();
wait_ms(80);

no_frequency();
wait_ms(150);

noteFsharp5();
wait_ms(50);

no_frequency();
wait_ms(350);

noteE5();
wait_ms(80);

no_frequency();
wait_ms(300);

noteHC5();
wait_ms(80);

no_frequency();
wait_ms(150);

noteD5();
wait_ms(80);

no_frequency();
wait_ms(150);

noteLB4();
wait_ms(80);

no_frequency();
wait_ms(500);

noteB4();
wait_ms(100);

no_frequency();
wait_ms(300);

noteFsharp5();
wait_ms(100);

no_frequency();
wait_ms(100);

noteLFsharp5();
wait_ms(100);

no_frequency();
wait_ms(150);

noteLF5();
wait_ms(100);

no_frequency();
wait_ms(150);

noteDsharp5();
wait_ms(150);

no_frequency();
wait_ms(300);

noteLE5();
wait_ms(150);

no_frequency();
wait_ms(300);

noteFsharp4();
wait_ms(100);

no_frequency();
wait_ms(150);

noteLA4();
wait_ms(100);

no_frequency();
wait_ms(150);

noteB4();
wait_ms(100);

no_frequency();
wait_ms(300);

noteLA4();
wait_ms(100);

no_frequency();
wait_ms(150);

noteB4();
wait_ms(100);

no_frequency();
wait_ms(100);

noteCsharp5();
wait_ms(100);

no_frequency();
wait_ms(220);

noteB4();
wait_ms(100);

no_frequency();
wait_ms(300);

noteFsharp5();
wait_ms(100);

no_frequency();
wait_ms(100);

noteLFsharp5();
wait_ms(100);

no_frequency();
wait_ms(150);

noteLF5();
wait_ms(100);

no_frequency();
wait_ms(150);

noteDsharp5();
wait_ms(150);

no_frequency();
wait_ms(300);

noteLE5();
wait_ms(200);

no_frequency();
wait_ms(300);

noteC6();
wait_ms(80);

no_frequency();
wait_ms(300);

noteC6();
wait_ms(80);

no_frequency();
wait_ms(150);

noteC6();
wait_ms(80);

no_frequency();
wait_ms(300);

noteFsharp4();
wait_ms(100);

no_frequency();
wait_ms(300);

noteB4();
wait_ms(100);

no_frequency();
wait_ms(300);

noteFsharp5();
wait_ms(100);

no_frequency();
wait_ms(100);

noteLFsharp5();
wait_ms(100);

no_frequency();
wait_ms(150);

noteLF5();
wait_ms(100);

no_frequency();
wait_ms(150);

noteDsharp5();
wait_ms(150);

no_frequency();
wait_ms(300);

noteLE5();
wait_ms(150);

no_frequency();
wait_ms(300);

noteFsharp4();
wait_ms(100);

no_frequency();
wait_ms(150);

noteLA4();
wait_ms(100);

no_frequency();
wait_ms(150);

noteB4();
wait_ms(100);

no_frequency();
wait_ms(300);

noteLA4();
wait_ms(100);

no_frequency();
wait_ms(150);

noteB4();
wait_ms(100);

no_frequency();
wait_ms(100);

noteCsharp5();
wait_ms(100);

no_frequency();
wait_ms(420);

noteHD5();
wait_ms(100);

no_frequency();
wait_ms(450);

noteLCsharp5();
wait_ms(100);

no_frequency();
wait_ms(420);

noteB4();
wait_ms(100);

no_frequency();
wait_ms(360);

noteFsharp4();
wait_ms(100);

no_frequency();
wait_ms(300);

noteB4();
wait_ms(100);

no_frequency();
wait_ms(300);

noteB4();
wait_ms(100);

no_frequency();
wait_ms(150);

noteB4();
wait_ms(100);

no_frequency();
wait_ms(300);

noteB4();
wait_ms(100);

no_frequency();
wait_ms(300);

noteFsharp5();
wait_ms(100);

no_frequency();
wait_ms(100);

noteLFsharp5();
wait_ms(100);

no_frequency();
wait_ms(150);

noteLF5();
wait_ms(100);

no_frequency();
wait_ms(150);

noteDsharp5();
wait_ms(150);

no_frequency();
wait_ms(300);

noteLE5();
wait_ms(150);

no_frequency();
wait_ms(300);

noteFsharp4();
wait_ms(100);

no_frequency();
wait_ms(150);

noteLA4();
wait_ms(100);

no_frequency();
wait_ms(150);

noteB4();
wait_ms(100);

no_frequency();
wait_ms(300);

noteLA4();
wait_ms(100);

no_frequency();
wait_ms(150);

noteB4();
wait_ms(100);

no_frequency();
wait_ms(100);

noteCsharp5();
wait_ms(100);

no_frequency();
wait_ms(220);

noteB4();
wait_ms(100);

no_frequency();
wait_ms(300);

noteFsharp5();
wait_ms(100);

no_frequency();
wait_ms(100);

noteLFsharp5();
wait_ms(100);

no_frequency();
wait_ms(150);

noteLF5();
wait_ms(100);

no_frequency();
wait_ms(150);

noteDsharp5();
wait_ms(150);

no_frequency();
wait_ms(300);

noteLE5();
wait_ms(200);

no_frequency();
wait_ms(300);

noteC6();
wait_ms(80);

no_frequency();
wait_ms(300);

noteC6();
wait_ms(80);

no_frequency();
wait_ms(150);

noteC6();
wait_ms(80);

no_frequency();
wait_ms(300);

noteFsharp4();
wait_ms(100);

no_frequency();
wait_ms(300);

noteB4();
wait_ms(100);

no_frequency();
wait_ms(300);

noteFsharp5();
wait_ms(100);

no_frequency();
wait_ms(100);

noteLFsharp5();
wait_ms(100);

no_frequency();
wait_ms(150);

noteLF5();
wait_ms(100);

no_frequency();
wait_ms(150);

noteDsharp5();
wait_ms(150);

no_frequency();
wait_ms(300);

noteLE5();
wait_ms(150);

no_frequency();
wait_ms(300);

noteFsharp4();
wait_ms(100);

no_frequency();
wait_ms(150);

noteLA4();
wait_ms(100);

no_frequency();
wait_ms(150);

noteB4();
wait_ms(100);

no_frequency();
wait_ms(300);

noteLA4();
wait_ms(100);

no_frequency();
wait_ms(150);

noteB4();
wait_ms(100);

no_frequency();
wait_ms(100);

noteCsharp5();
wait_ms(100);

no_frequency();
wait_ms(420);

noteHD5();
wait_ms(100);

no_frequency();
wait_ms(450);

noteLCsharp5();
wait_ms(100);

no_frequency();
wait_ms(420);

noteB4();
wait_ms(100);

no_frequency();
wait_ms(360);

noteFsharp4();
wait_ms(100);

no_frequency();
wait_ms(300);

noteB4();
wait_ms(100);

no_frequency();
wait_ms(300);

noteB4();
wait_ms(100);

no_frequency();
wait_ms(150);

noteB4();
wait_ms(100);

no_frequency();
wait_ms(300);

noteB4();
wait_ms(60);

no_frequency();
wait_ms(150);

noteB4();
wait_ms(80);

no_frequency();
wait_ms(300);

noteB4();
wait_ms(60);

no_frequency();
wait_ms(350);

noteB4();
wait_ms(80);

no_frequency();
wait_ms(150);

noteD5();
wait_ms(80);

no_frequency();
wait_ms(350);

noteE5();
wait_ms(80);

no_frequency();
wait_ms(150);

noteB4();
wait_ms(80);

no_frequency();
wait_ms(300);

noteLA4();
wait_ms(80);

no_frequency();
wait_ms(150);

noteFsharp4();
wait_ms(80);

no_frequency();
wait_ms(600);

noteB4();
wait_ms(60);

no_frequency();
wait_ms(150);

noteB4();
wait_ms(80);

no_frequency();
wait_ms(300);

noteB4();
wait_ms(60);

no_frequency();
wait_ms(350);

noteB4();
wait_ms(80);

no_frequency();
wait_ms(150);

noteD5();
wait_ms(80);

no_frequency();
wait_ms(150);

noteE5();
wait_ms(80);

no_frequency();
wait_ms(550);

noteHA5();
wait_ms(80);

no_frequency();
wait_ms(325);

noteFsharp5();
wait_ms(80);

no_frequency();
wait_ms(600);

noteB4();
wait_ms(60);

no_frequency();
wait_ms(150);

noteB4();
wait_ms(80);

no_frequency();
wait_ms(300);

noteB4();
wait_ms(60);

no_frequency();
wait_ms(350);

noteB4();
wait_ms(80);

no_frequency();
wait_ms(150);

noteD5();
wait_ms(80);

no_frequency();
wait_ms(350);

noteE5();
wait_ms(80);

no_frequency();
wait_ms(150);

noteB4();
wait_ms(80);

no_frequency();
wait_ms(300);

noteLA4();
wait_ms(80);

no_frequency();
wait_ms(150);

noteFsharp4();
wait_ms(80);

no_frequency();
wait_ms(600);

noteE5();
wait_ms(100);

no_frequency();
wait_ms(150);

noteE5();
wait_ms(100);

no_frequency();
wait_ms(300);

noteE5();
wait_ms(100);

no_frequency();
wait_ms(300);

noteC5();
wait_ms(100);

no_frequency();
wait_ms(100);

noteE5();
wait_ms(100);

no_frequency();
wait_ms(300);

noteG5();
wait_ms(100);

no_frequency();
wait_ms(550);

noteFsharp4();
wait_ms(100);

no_frequency();
wait_ms(575);

}