#define C 64
#define D 58
#define E 52
#define F 49
#define G 43
#define A 39
#define b 37
#define C_2 33
void play_note(int note, int duration){
for (int i = 0; i < duration * 10; i++){
GPIO_WRITE(0x01000001);
delay(note);
GPIO_WRITE(0x00000001);
delay(note);
}
}
void play_happy_birthday()
{
clear();
char str1a[] = "Happy\n";
char str1b[10] = " Birthday\n";
char str1c[] = " To\n";
char str1d[] = " You!\n";
char str1e[] = " Dear\n";
char str1f[] = " Apple!\n";
setCursor(0, 0, 10);
lcd_print(str1a, 3);
lcd_print(str1b, 3);
setCursor(0, 1, 3);
lcd_print(str1c, 3);
lcd_print(str1d, 3);
cursor();
blink();
play_note(C, 6);
delay(1000);
play_note(C, 6);
delay(2000);
play_note(D, 8);
delay(2000);
play_note(C, 8);
delay(2000);
play_note(F, 10);
delay(2000);
play_note(E, 17);
setCursor(0, 2, 3);
lcd_print(str1a, 3);
lcd_print(str1b, 3);
setCursor(0, 3, 3);
lcd_print(str1c, 3);
lcd_print(str1d, 3);
blink();
// delay(10000);
play_note(C, 6);
delay(1000);
play_note(C, 6);
delay(2000);
play_note(D, 8);
delay(2000);
play_note(C, 8);
delay(2000);
play_note(G, 10);
delay(2000);
play_note(F, 17);
clear();
setCursor(0, 0, 3);
lcd_print(str1a, 3);
lcd_print(str1b, 3);
setCursor(0, 1, 3);
lcd_print(str1e, 3);
lcd_print(str1f, 3);
blink();
// delay(10000);
play_note(C, 6);
delay(1000);
play_note(C, 6);
delay(2000);
play_note(C_2, 12);
delay(2000);
play_note(A, 10);
delay(3000);
play_note(F, 9);
delay(2000);
play_note(E, 9);
delay(2000);
play_note(D, 9);
setCursor(0, 2, 3);
lcd_print(str1a, 3);
lcd_print(str1b, 3);
setCursor(0, 3, 3);
lcd_print(str1c, 3);
lcd_print(str1d, 3);
blink();
// delay(10000);
play_note(b, 6);
delay(1000);
play_note(b, 6);
delay(1000);
play_note(A, 8);
delay(1000);
play_note(F, 8);
delay(1000);
play_note(G, 8);
delay(1000);
play_note(F, 22);
noCursor();
noBlink();
return;
}