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