plays 4 songs, worked off of hexiwear click buzzer example
Dependencies: FXOS8700 Hexi_KW40Z PWM_Tone_Library_4th_Octave-6th_Octave
Fork of Hexi_Click_Buzzer_Example by
ECE Department IUPUI
IotMain.cpp@1:95876081cc0d, 2017-04-12 (annotated)
- Committer:
- naikhar0
- Date:
- Wed Apr 12 14:06:31 2017 +0000
- Revision:
- 1:95876081cc0d
plays 4 songs
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
naikhar0 | 1:95876081cc0d | 1 | #include "mbed.h" |
naikhar0 | 1:95876081cc0d | 2 | #include "pwm_tone.h" |
naikhar0 | 1:95876081cc0d | 3 | #include "Hexi_OLED_SSD1351.h" |
naikhar0 | 1:95876081cc0d | 4 | |
naikhar0 | 1:95876081cc0d | 5 | #include "IotMainImage.h" |
naikhar0 | 1:95876081cc0d | 6 | #include "string.h" |
naikhar0 | 1:95876081cc0d | 7 | |
naikhar0 | 1:95876081cc0d | 8 | #include "Hexi_KW40Z.h" |
naikhar0 | 1:95876081cc0d | 9 | #include "FXOS8700.h" |
naikhar0 | 1:95876081cc0d | 10 | |
naikhar0 | 1:95876081cc0d | 11 | #define LED_ON 0 |
naikhar0 | 1:95876081cc0d | 12 | #define LED_OFF 1 |
naikhar0 | 1:95876081cc0d | 13 | |
naikhar0 | 1:95876081cc0d | 14 | |
naikhar0 | 1:95876081cc0d | 15 | /*------------------FUNCTIONS-------------------------------------------------*/ |
naikhar0 | 1:95876081cc0d | 16 | |
naikhar0 | 1:95876081cc0d | 17 | //Defining functions for haptic feedback |
naikhar0 | 1:95876081cc0d | 18 | void StartHaptic(void); |
naikhar0 | 1:95876081cc0d | 19 | void StopHaptic(void const *n); |
naikhar0 | 1:95876081cc0d | 20 | |
naikhar0 | 1:95876081cc0d | 21 | //LED functions |
naikhar0 | 1:95876081cc0d | 22 | DigitalOut redLed(LED1); |
naikhar0 | 1:95876081cc0d | 23 | DigitalOut greenLed(LED2); |
naikhar0 | 1:95876081cc0d | 24 | DigitalOut blueLed(LED3); |
naikhar0 | 1:95876081cc0d | 25 | DigitalOut haptic(PTB9); |
naikhar0 | 1:95876081cc0d | 26 | |
naikhar0 | 1:95876081cc0d | 27 | // Pin connections |
naikhar0 | 1:95876081cc0d | 28 | DigitalOut led1(LED_GREEN); // RGB LED |
naikhar0 | 1:95876081cc0d | 29 | FXOS8700 accel(PTC11, PTC10); |
naikhar0 | 1:95876081cc0d | 30 | SSD1351 oled(PTB22,PTB21,PTC13,PTB20,PTE6, PTD15); // SSD1351 OLED Driver (MOSI,SCLK,POWER,CS,RST,DC) |
naikhar0 | 1:95876081cc0d | 31 | |
naikhar0 | 1:95876081cc0d | 32 | // Define the Buzzer Pinout (PWM Out) |
naikhar0 | 1:95876081cc0d | 33 | PwmOut Buzzer(PTA10); |
naikhar0 | 1:95876081cc0d | 34 | |
naikhar0 | 1:95876081cc0d | 35 | // Define timer for haptic feedback |
naikhar0 | 1:95876081cc0d | 36 | RtosTimer hapticTimer(StopHaptic, osTimerOnce); |
naikhar0 | 1:95876081cc0d | 37 | |
naikhar0 | 1:95876081cc0d | 38 | // Instantiate the Hexi KW40Z Driver (UART TX, UART RX) |
naikhar0 | 1:95876081cc0d | 39 | KW40Z kw40z_device(PTE24, PTE25); |
naikhar0 | 1:95876081cc0d | 40 | |
naikhar0 | 1:95876081cc0d | 41 | /*------------------VARIABLES-------------------------------------------------*/ |
naikhar0 | 1:95876081cc0d | 42 | |
naikhar0 | 1:95876081cc0d | 43 | float C_3 = 1000000/Do3, |
naikhar0 | 1:95876081cc0d | 44 | Cs_3 = 1000000/Do3s, |
naikhar0 | 1:95876081cc0d | 45 | D_3 = 1000000/Re3, |
naikhar0 | 1:95876081cc0d | 46 | Ds_3 = 1000000/Re3s, |
naikhar0 | 1:95876081cc0d | 47 | E_3 = 1000000/Mi3, |
naikhar0 | 1:95876081cc0d | 48 | F_3 = 1000000/Fa3, |
naikhar0 | 1:95876081cc0d | 49 | Fs_3 = 1000000/Fa3s, |
naikhar0 | 1:95876081cc0d | 50 | G_3 = 1000000/So3, |
naikhar0 | 1:95876081cc0d | 51 | Gs_3 = 1000000/So3s, |
naikhar0 | 1:95876081cc0d | 52 | A_3 = 1000000/La3, |
naikhar0 | 1:95876081cc0d | 53 | As_3 = 1000000/La3s, |
naikhar0 | 1:95876081cc0d | 54 | B_3 = 1000000/Ti3, |
naikhar0 | 1:95876081cc0d | 55 | C_4 = 1000000/Do4, |
naikhar0 | 1:95876081cc0d | 56 | Cs_4 = 1000000/Do4s, |
naikhar0 | 1:95876081cc0d | 57 | D_4 = 1000000/Re4, |
naikhar0 | 1:95876081cc0d | 58 | Ds_4 = 1000000/Re4s, |
naikhar0 | 1:95876081cc0d | 59 | E_4 = 1000000/Mi4, |
naikhar0 | 1:95876081cc0d | 60 | F_4 = 1000000/Fa4, |
naikhar0 | 1:95876081cc0d | 61 | Fs_4 = 1000000/Fa4s, |
naikhar0 | 1:95876081cc0d | 62 | G_4 = 1000000/So4, |
naikhar0 | 1:95876081cc0d | 63 | Gs_4 = 1000000/So4s, |
naikhar0 | 1:95876081cc0d | 64 | A_4 = 1000000/La4, |
naikhar0 | 1:95876081cc0d | 65 | As_4 = 1000000/La4s, |
naikhar0 | 1:95876081cc0d | 66 | B_4 = 1000000/Ti4, |
naikhar0 | 1:95876081cc0d | 67 | C_5 = 1000000/Do5, |
naikhar0 | 1:95876081cc0d | 68 | Cs_5 = 1000000/Do5s, |
naikhar0 | 1:95876081cc0d | 69 | D_5 = 1000000/Re5, |
naikhar0 | 1:95876081cc0d | 70 | Ds_5 = 1000000/Re5s, |
naikhar0 | 1:95876081cc0d | 71 | E_5 = 1000000/Mi5, |
naikhar0 | 1:95876081cc0d | 72 | F_5 = 1000000/Fa5, |
naikhar0 | 1:95876081cc0d | 73 | Fs_5 = 1000000/Fa5s, |
naikhar0 | 1:95876081cc0d | 74 | G_5 = 1000000/So5, |
naikhar0 | 1:95876081cc0d | 75 | Gs_5 = 1000000/So5s, |
naikhar0 | 1:95876081cc0d | 76 | A_5 = 1000000/La5, |
naikhar0 | 1:95876081cc0d | 77 | As_5 = 1000000/La5s, |
naikhar0 | 1:95876081cc0d | 78 | B_5 = 1000000/Ti5, |
naikhar0 | 1:95876081cc0d | 79 | C_6 = 1000000/Do6, |
naikhar0 | 1:95876081cc0d | 80 | Cs_6 = 1000000/Do6s, |
naikhar0 | 1:95876081cc0d | 81 | D_6 = 1000000/Re6, |
naikhar0 | 1:95876081cc0d | 82 | Ds_6 = 1000000/Re6s, |
naikhar0 | 1:95876081cc0d | 83 | E_6 = 1000000/Mi6, |
naikhar0 | 1:95876081cc0d | 84 | F_6 = 1000000/Fa6, |
naikhar0 | 1:95876081cc0d | 85 | Fs_6 = 1000000/Fa6s, |
naikhar0 | 1:95876081cc0d | 86 | G_6 = 1000000/So6, |
naikhar0 | 1:95876081cc0d | 87 | Gs_6 = 1000000/So6s, |
naikhar0 | 1:95876081cc0d | 88 | A_6 = 1000000/La6, |
naikhar0 | 1:95876081cc0d | 89 | As_6 = 1000000/La6s, |
naikhar0 | 1:95876081cc0d | 90 | B_6 = 1000000/Ti6; |
naikhar0 | 1:95876081cc0d | 91 | |
naikhar0 | 1:95876081cc0d | 92 | //Notes defined by a million/defined value in pwm_tone.h file |
naikhar0 | 1:95876081cc0d | 93 | //Organize code such that all variables in .h file and all functions in seperate .cpp file for simpler debugging |
naikhar0 | 1:95876081cc0d | 94 | //Song tones------------------------------------------------------------------- |
naikhar0 | 1:95876081cc0d | 95 | |
naikhar0 | 1:95876081cc0d | 96 | //Marry had a little lamb red led, leftmost button |
naikhar0 | 1:95876081cc0d | 97 | int tones1[] = {E_4, D_4, C_4, D_4, E_4, E_4, E_4, 0, D_4, D_4, D_4, 0, \ |
naikhar0 | 1:95876081cc0d | 98 | E_4, G_4, G_4, 0, E_4, D_4, C_4, D_4, E_4, E_4, E_4, 0, \ |
naikhar0 | 1:95876081cc0d | 99 | D_4, D_4, E_4, D_4, C_4, 0, 0, 0}; |
naikhar0 | 1:95876081cc0d | 100 | //done |
naikhar0 | 1:95876081cc0d | 101 | |
naikhar0 | 1:95876081cc0d | 102 | //Senya -Itachi theme |
naikhar0 | 1:95876081cc0d | 103 | int tones2a[] = {G_5, Gs_5, G_5, Ds_5, F_5, 0, Ds_5, F_5, Ds_5, As_4, D_5, \ |
naikhar0 | 1:95876081cc0d | 104 | 0}; |
naikhar0 | 1:95876081cc0d | 105 | //C_5(4), Ds_5(4), As_4(4), C_5(12) |
naikhar0 | 1:95876081cc0d | 106 | //x3 |
naikhar0 | 1:95876081cc0d | 107 | |
naikhar0 | 1:95876081cc0d | 108 | int tones2b[] = {C_5, D_5, Ds_5, D_5, C_5, As_4, C_5, D_5, F_5}; |
naikhar0 | 1:95876081cc0d | 109 | //Ds_5(12) |
naikhar0 | 1:95876081cc0d | 110 | //x3 twice as slow |
naikhar0 | 1:95876081cc0d | 111 | |
naikhar0 | 1:95876081cc0d | 112 | int tones2c[] = {C_5, D_5, Ds_5, D_5, C_5, As_4, C_5, D_5, F_5, D_5}; |
naikhar0 | 1:95876081cc0d | 113 | //C_5(8) |
naikhar0 | 1:95876081cc0d | 114 | //x1 twice as slow |
naikhar0 | 1:95876081cc0d | 115 | |
naikhar0 | 1:95876081cc0d | 116 | |
naikhar0 | 1:95876081cc0d | 117 | |
naikhar0 | 1:95876081cc0d | 118 | |
naikhar0 | 1:95876081cc0d | 119 | |
naikhar0 | 1:95876081cc0d | 120 | int tones3[] = {As_3, A_3, Gs_3, G_3, Fs_3, F_3, E_3, Ds_3, D_3, Cs_3, C_3, 0,\ |
naikhar0 | 1:95876081cc0d | 121 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
naikhar0 | 1:95876081cc0d | 122 | }; |
naikhar0 | 1:95876081cc0d | 123 | |
naikhar0 | 1:95876081cc0d | 124 | //OneRepublic -Secrets |
naikhar0 | 1:95876081cc0d | 125 | int tones4[] = {D_4, F_4, A_4, F_4, A_4, F_4, D_4, F_4, D_4, F_4, A_4, F_4, \ |
naikhar0 | 1:95876081cc0d | 126 | A_4, F_4, D_4, F_4, C_4, F_4, A_4, F_4, A_4, F_4, C_4, F_4, \ |
naikhar0 | 1:95876081cc0d | 127 | C_4, F_4, A_4, F_4, A_4, F_4, C_4, F_4, B_3, D_4, B_4, D_4, \ |
naikhar0 | 1:95876081cc0d | 128 | B_4, D_4, B_3, D_4, B_3, D_4, B_4, D_4, B_4, D_4, B_3, D_4, \ |
naikhar0 | 1:95876081cc0d | 129 | G_3, D_4, B_4, D_4, B_4, D_4, B_4, D_4, 0, 0, A_4, A_4, \ |
naikhar0 | 1:95876081cc0d | 130 | A_4, A_4, A_4}; |
naikhar0 | 1:95876081cc0d | 131 | //12 notes per row, done |
naikhar0 | 1:95876081cc0d | 132 | |
naikhar0 | 1:95876081cc0d | 133 | //Number of tones--------------------------------------------------------------- |
naikhar0 | 1:95876081cc0d | 134 | |
naikhar0 | 1:95876081cc0d | 135 | int tones_num1 = 32; // Auto performance, 32 notes max |
naikhar0 | 1:95876081cc0d | 136 | int tones_num2 = 63; // Auto performance, 23 notes max |
naikhar0 | 1:95876081cc0d | 137 | int tones_num3 = 12; // Auto performance, 12 notes max |
naikhar0 | 1:95876081cc0d | 138 | int tones_num4 = 9; // Auto performance, 9 notes max |
naikhar0 | 1:95876081cc0d | 139 | int i; |
naikhar0 | 1:95876081cc0d | 140 | Timer t; |
naikhar0 | 1:95876081cc0d | 141 | |
naikhar0 | 1:95876081cc0d | 142 | const uint8_t *image1; // Pointer for the image1 to be displayed |
naikhar0 | 1:95876081cc0d | 143 | char text1[20]; // Text Buffer for dynamic value displayed |
naikhar0 | 1:95876081cc0d | 144 | char text2[20]; // Text Buffer for dynamic value displayed |
naikhar0 | 1:95876081cc0d | 145 | char text3[20]; // Text Buffer for dynamic value displayed |
naikhar0 | 1:95876081cc0d | 146 | char text4[20]; // Text Buffer for dynamic value displayed |
naikhar0 | 1:95876081cc0d | 147 | char text5[20]; // Test Buffer for dynamic value displayed |
naikhar0 | 1:95876081cc0d | 148 | char text6[20]; // Text Buffer for dynamic value displayed |
naikhar0 | 1:95876081cc0d | 149 | |
naikhar0 | 1:95876081cc0d | 150 | /*------------------FUNCTIONS-------------------------------------------------*/ |
naikhar0 | 1:95876081cc0d | 151 | |
naikhar0 | 1:95876081cc0d | 152 | //------------------RED LED----------------------------------------------------- |
naikhar0 | 1:95876081cc0d | 153 | void ButtonLeft(void) |
naikhar0 | 1:95876081cc0d | 154 | { |
naikhar0 | 1:95876081cc0d | 155 | StartHaptic(); |
naikhar0 | 1:95876081cc0d | 156 | redLed = LED_ON; |
naikhar0 | 1:95876081cc0d | 157 | greenLed = LED_OFF; |
naikhar0 | 1:95876081cc0d | 158 | blueLed = LED_OFF; |
naikhar0 | 1:95876081cc0d | 159 | |
naikhar0 | 1:95876081cc0d | 160 | // Fill 96px by 96px Screen with 96px by 96px NXP Image starting at x=0,y=0 |
naikhar0 | 1:95876081cc0d | 161 | oled.DrawImage(image1,0,0); |
naikhar0 | 1:95876081cc0d | 162 | oled_text_properties_t textProperties = {0}; |
naikhar0 | 1:95876081cc0d | 163 | oled.GetTextProperties(&textProperties); |
naikhar0 | 1:95876081cc0d | 164 | |
naikhar0 | 1:95876081cc0d | 165 | /* Set text properties to white and right aligned for the dynamic text */ |
naikhar0 | 1:95876081cc0d | 166 | textProperties.fontColor = COLOR_YELLOW; |
naikhar0 | 1:95876081cc0d | 167 | textProperties.alignParam = OLED_TEXT_ALIGN_LEFT; |
naikhar0 | 1:95876081cc0d | 168 | oled.SetTextProperties(&textProperties); |
naikhar0 | 1:95876081cc0d | 169 | /* Display text2 */ |
naikhar0 | 1:95876081cc0d | 170 | strcpy((char *) text1,"When red LED"); |
naikhar0 | 1:95876081cc0d | 171 | oled.Label((uint8_t *)text1,3,28); |
naikhar0 | 1:95876081cc0d | 172 | /* Display text3 */ |
naikhar0 | 1:95876081cc0d | 173 | strcpy((char *) text2,"turns off, press"); //17 characters max length per statement |
naikhar0 | 1:95876081cc0d | 174 | oled.Label((uint8_t *)text2,3,41); |
naikhar0 | 1:95876081cc0d | 175 | /* Display text4 */ |
naikhar0 | 1:95876081cc0d | 176 | strcpy((char *) text3,"another button"); |
naikhar0 | 1:95876081cc0d | 177 | oled.Label((uint8_t *)text3,3,54); |
naikhar0 | 1:95876081cc0d | 178 | /* Display text5 */ |
naikhar0 | 1:95876081cc0d | 179 | strcpy((char *) text4,"to play"); |
naikhar0 | 1:95876081cc0d | 180 | oled.Label((uint8_t *)text4,3,67); |
naikhar0 | 1:95876081cc0d | 181 | /* Register callbacks to application functions */ |
naikhar0 | 1:95876081cc0d | 182 | strcpy((char *)text5,"another song"); |
naikhar0 | 1:95876081cc0d | 183 | oled.Label((uint8_t *)text5,3,80); |
naikhar0 | 1:95876081cc0d | 184 | |
naikhar0 | 1:95876081cc0d | 185 | for(i=0; i<tones_num1; i++) |
naikhar0 | 1:95876081cc0d | 186 | { |
naikhar0 | 1:95876081cc0d | 187 | Auto_tunes(Buzzer, tones1[i], 4); // Auto performance |
naikhar0 | 1:95876081cc0d | 188 | Stop_tunes(Buzzer); |
naikhar0 | 1:95876081cc0d | 189 | } |
naikhar0 | 1:95876081cc0d | 190 | |
naikhar0 | 1:95876081cc0d | 191 | redLed = LED_OFF; |
naikhar0 | 1:95876081cc0d | 192 | greenLed = LED_OFF; |
naikhar0 | 1:95876081cc0d | 193 | blueLed = LED_OFF; |
naikhar0 | 1:95876081cc0d | 194 | } |
naikhar0 | 1:95876081cc0d | 195 | //-------------------------GREEN LED-------------------------------------------- |
naikhar0 | 1:95876081cc0d | 196 | void ButtonRight(void) |
naikhar0 | 1:95876081cc0d | 197 | { |
naikhar0 | 1:95876081cc0d | 198 | StartHaptic(); |
naikhar0 | 1:95876081cc0d | 199 | |
naikhar0 | 1:95876081cc0d | 200 | redLed = LED_OFF; |
naikhar0 | 1:95876081cc0d | 201 | greenLed = LED_ON; |
naikhar0 | 1:95876081cc0d | 202 | blueLed = LED_OFF; |
naikhar0 | 1:95876081cc0d | 203 | |
naikhar0 | 1:95876081cc0d | 204 | oled.DrawImage(image1,0,0); |
naikhar0 | 1:95876081cc0d | 205 | oled_text_properties_t textProperties = {0}; |
naikhar0 | 1:95876081cc0d | 206 | oled.GetTextProperties(&textProperties); |
naikhar0 | 1:95876081cc0d | 207 | |
naikhar0 | 1:95876081cc0d | 208 | /* Set text properties to white and right aligned for the dynamic text */ |
naikhar0 | 1:95876081cc0d | 209 | textProperties.fontColor = COLOR_YELLOW; |
naikhar0 | 1:95876081cc0d | 210 | textProperties.alignParam = OLED_TEXT_ALIGN_LEFT; |
naikhar0 | 1:95876081cc0d | 211 | oled.SetTextProperties(&textProperties); |
naikhar0 | 1:95876081cc0d | 212 | /* Display text2 */ |
naikhar0 | 1:95876081cc0d | 213 | strcpy((char *) text1,"When green LED"); |
naikhar0 | 1:95876081cc0d | 214 | oled.Label((uint8_t *)text1,3,28); |
naikhar0 | 1:95876081cc0d | 215 | /* Display text3 */ |
naikhar0 | 1:95876081cc0d | 216 | strcpy((char *) text2,"turns off, press"); //17 characters max length per statement |
naikhar0 | 1:95876081cc0d | 217 | oled.Label((uint8_t *)text2,3,41); |
naikhar0 | 1:95876081cc0d | 218 | /* Display text4 */ |
naikhar0 | 1:95876081cc0d | 219 | strcpy((char *) text3,"another button"); |
naikhar0 | 1:95876081cc0d | 220 | oled.Label((uint8_t *)text3,3,54); |
naikhar0 | 1:95876081cc0d | 221 | /* Display text5 */ |
naikhar0 | 1:95876081cc0d | 222 | strcpy((char *) text4,"to play"); |
naikhar0 | 1:95876081cc0d | 223 | oled.Label((uint8_t *)text4,3,67); |
naikhar0 | 1:95876081cc0d | 224 | /* Register callbacks to application functions */ |
naikhar0 | 1:95876081cc0d | 225 | strcpy((char *)text5,"another song"); |
naikhar0 | 1:95876081cc0d | 226 | oled.Label((uint8_t *)text5,3,80); |
naikhar0 | 1:95876081cc0d | 227 | |
naikhar0 | 1:95876081cc0d | 228 | for(i=0; i<tones_num3; i++) |
naikhar0 | 1:95876081cc0d | 229 | { |
naikhar0 | 1:95876081cc0d | 230 | Auto_tunes(Buzzer, tones2a[i], 4); // Auto performance |
naikhar0 | 1:95876081cc0d | 231 | Stop_tunes(Buzzer); |
naikhar0 | 1:95876081cc0d | 232 | } |
naikhar0 | 1:95876081cc0d | 233 | Tune(Buzzer, C_5, 8); //4 Octave C beat 4/16 |
naikhar0 | 1:95876081cc0d | 234 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 235 | Tune(Buzzer, Ds_5, 8); //4 Octave C beat 4/16 |
naikhar0 | 1:95876081cc0d | 236 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 237 | Tune(Buzzer, As_4, 8); //4 Octave C beat 4/16 |
naikhar0 | 1:95876081cc0d | 238 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 239 | Tune(Buzzer, C_5, 20); |
naikhar0 | 1:95876081cc0d | 240 | wait_ms(250); |
naikhar0 | 1:95876081cc0d | 241 | |
naikhar0 | 1:95876081cc0d | 242 | for(i=0; i<tones_num3; i++) |
naikhar0 | 1:95876081cc0d | 243 | { |
naikhar0 | 1:95876081cc0d | 244 | Auto_tunes(Buzzer, tones2a[i], 4); // Auto performance |
naikhar0 | 1:95876081cc0d | 245 | Stop_tunes(Buzzer); |
naikhar0 | 1:95876081cc0d | 246 | } |
naikhar0 | 1:95876081cc0d | 247 | Tune(Buzzer, C_5, 8); //4 Octave C beat 4/16 |
naikhar0 | 1:95876081cc0d | 248 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 249 | Tune(Buzzer, Ds_5, 8); //4 Octave C beat 4/16 |
naikhar0 | 1:95876081cc0d | 250 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 251 | Tune(Buzzer, As_4, 8); //4 Octave C beat 4/16 |
naikhar0 | 1:95876081cc0d | 252 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 253 | Tune(Buzzer, C_5, 20); |
naikhar0 | 1:95876081cc0d | 254 | wait_ms(250); |
naikhar0 | 1:95876081cc0d | 255 | |
naikhar0 | 1:95876081cc0d | 256 | for(i=0; i<tones_num3; i++) |
naikhar0 | 1:95876081cc0d | 257 | { |
naikhar0 | 1:95876081cc0d | 258 | Auto_tunes(Buzzer, tones2a[i], 4); // Auto performance |
naikhar0 | 1:95876081cc0d | 259 | Stop_tunes(Buzzer); |
naikhar0 | 1:95876081cc0d | 260 | } |
naikhar0 | 1:95876081cc0d | 261 | Tune(Buzzer, C_5, 8); //4 Octave C beat 4/16 |
naikhar0 | 1:95876081cc0d | 262 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 263 | Tune(Buzzer, Ds_5, 8); //4 Octave C beat 4/16 |
naikhar0 | 1:95876081cc0d | 264 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 265 | Tune(Buzzer, As_4, 8); //4 Octave C beat 4/16 |
naikhar0 | 1:95876081cc0d | 266 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 267 | Tune(Buzzer, C_5, 20); |
naikhar0 | 1:95876081cc0d | 268 | wait_ms(250); |
naikhar0 | 1:95876081cc0d | 269 | |
naikhar0 | 1:95876081cc0d | 270 | for(i=0; i<tones_num4; i++) |
naikhar0 | 1:95876081cc0d | 271 | { |
naikhar0 | 1:95876081cc0d | 272 | Auto_tunes(Buzzer, tones2b[i], 8); // Auto performance |
naikhar0 | 1:95876081cc0d | 273 | Stop_tunes(Buzzer); |
naikhar0 | 1:95876081cc0d | 274 | } |
naikhar0 | 1:95876081cc0d | 275 | Tune(Buzzer, Ds_5, 12); //4 Octave C beat 4/16 |
naikhar0 | 1:95876081cc0d | 276 | wait_ms(250); |
naikhar0 | 1:95876081cc0d | 277 | |
naikhar0 | 1:95876081cc0d | 278 | for(i=0; i<tones_num4; i++) |
naikhar0 | 1:95876081cc0d | 279 | { |
naikhar0 | 1:95876081cc0d | 280 | Auto_tunes(Buzzer, tones2b[i], 8); // Auto performance |
naikhar0 | 1:95876081cc0d | 281 | Stop_tunes(Buzzer); |
naikhar0 | 1:95876081cc0d | 282 | } |
naikhar0 | 1:95876081cc0d | 283 | Tune(Buzzer, Ds_5, 12); //4 Octave C beat 4/16 |
naikhar0 | 1:95876081cc0d | 284 | wait_ms(250); |
naikhar0 | 1:95876081cc0d | 285 | |
naikhar0 | 1:95876081cc0d | 286 | for(i=0; i<tones_num4; i++) |
naikhar0 | 1:95876081cc0d | 287 | { |
naikhar0 | 1:95876081cc0d | 288 | Auto_tunes(Buzzer, tones2b[i], 8); // Auto performance |
naikhar0 | 1:95876081cc0d | 289 | Stop_tunes(Buzzer); |
naikhar0 | 1:95876081cc0d | 290 | } |
naikhar0 | 1:95876081cc0d | 291 | Tune(Buzzer, Ds_5, 12); //4 Octave C beat 4/16 |
naikhar0 | 1:95876081cc0d | 292 | wait_ms(250); |
naikhar0 | 1:95876081cc0d | 293 | |
naikhar0 | 1:95876081cc0d | 294 | for(i=0; i<tones_num4; i++) |
naikhar0 | 1:95876081cc0d | 295 | { |
naikhar0 | 1:95876081cc0d | 296 | Auto_tunes(Buzzer, tones2c[i], 8); // Auto performance |
naikhar0 | 1:95876081cc0d | 297 | Stop_tunes(Buzzer); |
naikhar0 | 1:95876081cc0d | 298 | } |
naikhar0 | 1:95876081cc0d | 299 | Tune(Buzzer, C_5, 12); //4 Octave C beat 4/16 |
naikhar0 | 1:95876081cc0d | 300 | wait_ms(250); |
naikhar0 | 1:95876081cc0d | 301 | |
naikhar0 | 1:95876081cc0d | 302 | redLed = LED_OFF; |
naikhar0 | 1:95876081cc0d | 303 | greenLed = LED_OFF; |
naikhar0 | 1:95876081cc0d | 304 | blueLed = LED_OFF; |
naikhar0 | 1:95876081cc0d | 305 | } |
naikhar0 | 1:95876081cc0d | 306 | //-------------------------BLUE LED--------------------------------------------- |
naikhar0 | 1:95876081cc0d | 307 | void ButtonDown(void) |
naikhar0 | 1:95876081cc0d | 308 | { |
naikhar0 | 1:95876081cc0d | 309 | StartHaptic(); |
naikhar0 | 1:95876081cc0d | 310 | |
naikhar0 | 1:95876081cc0d | 311 | redLed = LED_OFF; |
naikhar0 | 1:95876081cc0d | 312 | greenLed = LED_OFF; |
naikhar0 | 1:95876081cc0d | 313 | blueLed = LED_ON; |
naikhar0 | 1:95876081cc0d | 314 | |
naikhar0 | 1:95876081cc0d | 315 | oled.DrawImage(image1,0,0); |
naikhar0 | 1:95876081cc0d | 316 | oled_text_properties_t textProperties = {0}; |
naikhar0 | 1:95876081cc0d | 317 | oled.GetTextProperties(&textProperties); |
naikhar0 | 1:95876081cc0d | 318 | |
naikhar0 | 1:95876081cc0d | 319 | /* Set text properties to white and right aligned for the dynamic text */ |
naikhar0 | 1:95876081cc0d | 320 | textProperties.fontColor = COLOR_YELLOW; |
naikhar0 | 1:95876081cc0d | 321 | textProperties.alignParam = OLED_TEXT_ALIGN_LEFT; |
naikhar0 | 1:95876081cc0d | 322 | oled.SetTextProperties(&textProperties); |
naikhar0 | 1:95876081cc0d | 323 | /* Display text2 */ |
naikhar0 | 1:95876081cc0d | 324 | strcpy((char *) text1,"When blue LED"); |
naikhar0 | 1:95876081cc0d | 325 | oled.Label((uint8_t *)text1,3,28); |
naikhar0 | 1:95876081cc0d | 326 | /* Display text3 */ |
naikhar0 | 1:95876081cc0d | 327 | strcpy((char *) text2,"turns off, press"); //17 characters max length per statement |
naikhar0 | 1:95876081cc0d | 328 | oled.Label((uint8_t *)text2,3,41); |
naikhar0 | 1:95876081cc0d | 329 | /* Display text4 */ |
naikhar0 | 1:95876081cc0d | 330 | strcpy((char *) text3,"another button"); |
naikhar0 | 1:95876081cc0d | 331 | oled.Label((uint8_t *)text3,3,54); |
naikhar0 | 1:95876081cc0d | 332 | /* Display text5 */ |
naikhar0 | 1:95876081cc0d | 333 | strcpy((char *) text4,"to play"); |
naikhar0 | 1:95876081cc0d | 334 | oled.Label((uint8_t *)text4,3,67); |
naikhar0 | 1:95876081cc0d | 335 | /* Register callbacks to application functions */ |
naikhar0 | 1:95876081cc0d | 336 | strcpy((char *)text5,"another song"); |
naikhar0 | 1:95876081cc0d | 337 | oled.Label((uint8_t *)text5,3,80); |
naikhar0 | 1:95876081cc0d | 338 | |
naikhar0 | 1:95876081cc0d | 339 | Tune(Buzzer, 0, 4); //1 |
naikhar0 | 1:95876081cc0d | 340 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 341 | Tune(Buzzer, G_5, 2); //2 |
naikhar0 | 1:95876081cc0d | 342 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 343 | Tune(Buzzer, G_5, 2); //3 |
naikhar0 | 1:95876081cc0d | 344 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 345 | Tune(Buzzer, A_5, 4); //4 |
naikhar0 | 1:95876081cc0d | 346 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 347 | Tune(Buzzer, G_5, 24); //5 |
naikhar0 | 1:95876081cc0d | 348 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 349 | Tune(Buzzer, A_5, 2); //6 |
naikhar0 | 1:95876081cc0d | 350 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 351 | Tune(Buzzer, G_5, 2); //7 |
naikhar0 | 1:95876081cc0d | 352 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 353 | Tune(Buzzer, A_5, 2); //8 |
naikhar0 | 1:95876081cc0d | 354 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 355 | Tune(Buzzer, G_5, 24); //9 |
naikhar0 | 1:95876081cc0d | 356 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 357 | Tune(Buzzer, G_5, 2); //10 |
naikhar0 | 1:95876081cc0d | 358 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 359 | Tune(Buzzer, G_5, 2); //11 |
naikhar0 | 1:95876081cc0d | 360 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 361 | Tune(Buzzer, C_6, 4); //12 |
naikhar0 | 1:95876081cc0d | 362 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 363 | Tune(Buzzer, B_5, 24); //13 |
naikhar0 | 1:95876081cc0d | 364 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 365 | Tune(Buzzer, A_5, 2); //14 |
naikhar0 | 1:95876081cc0d | 366 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 367 | Tune(Buzzer, G_5, 2); //15 |
naikhar0 | 1:95876081cc0d | 368 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 369 | Tune(Buzzer, A_5, 6); //16 |
naikhar0 | 1:95876081cc0d | 370 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 371 | Tune(Buzzer, G_5, 18); //17 |
naikhar0 | 1:95876081cc0d | 372 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 373 | Tune(Buzzer, G_5, 3); //18 |
naikhar0 | 1:95876081cc0d | 374 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 375 | Tune(Buzzer, A_5, 3); //19 |
naikhar0 | 1:95876081cc0d | 376 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 377 | Tune(Buzzer, G_5, 3); //20 |
naikhar0 | 1:95876081cc0d | 378 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 379 | Tune(Buzzer, D_6, 4); //21 |
naikhar0 | 1:95876081cc0d | 380 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 381 | Tune(Buzzer, Fs_6, 2); //22 |
naikhar0 | 1:95876081cc0d | 382 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 383 | Tune(Buzzer, B_5, 10); //23 |
naikhar0 | 1:95876081cc0d | 384 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 385 | Tune(Buzzer, G_5, 2); //24 |
naikhar0 | 1:95876081cc0d | 386 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 387 | Tune(Buzzer, G_5, 2); //25 |
naikhar0 | 1:95876081cc0d | 388 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 389 | Tune(Buzzer, A_5, 2); //26 |
naikhar0 | 1:95876081cc0d | 390 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 391 | Tune(Buzzer, G_5, 4); //27 |
naikhar0 | 1:95876081cc0d | 392 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 393 | Tune(Buzzer, C_6, 3); //28 |
naikhar0 | 1:95876081cc0d | 394 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 395 | Tune(Buzzer, E_5, 22); //29 |
naikhar0 | 1:95876081cc0d | 396 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 397 | Tune(Buzzer, G_5, 2); //30 |
naikhar0 | 1:95876081cc0d | 398 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 399 | Tune(Buzzer, G_5, 2); //31 |
naikhar0 | 1:95876081cc0d | 400 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 401 | Tune(Buzzer, G_5, 2); //32 |
naikhar0 | 1:95876081cc0d | 402 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 403 | Tune(Buzzer, A_5, 2); //33 |
naikhar0 | 1:95876081cc0d | 404 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 405 | Tune(Buzzer, G_5, 4); //34 |
naikhar0 | 1:95876081cc0d | 406 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 407 | Tune(Buzzer, C_6, 4); //35 |
naikhar0 | 1:95876081cc0d | 408 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 409 | Tune(Buzzer, B_6, 10); //36 |
naikhar0 | 1:95876081cc0d | 410 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 411 | Tune(Buzzer, G_5, 2); //37 |
naikhar0 | 1:95876081cc0d | 412 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 413 | Tune(Buzzer, G_5, 2); //38 |
naikhar0 | 1:95876081cc0d | 414 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 415 | Tune(Buzzer, G_5, 2); //39 |
naikhar0 | 1:95876081cc0d | 416 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 417 | Tune(Buzzer, G_5, 3); //40 |
naikhar0 | 1:95876081cc0d | 418 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 419 | Tune(Buzzer, A_5, 3); //41 |
naikhar0 | 1:95876081cc0d | 420 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 421 | Tune(Buzzer, G_5, 3); //42 |
naikhar0 | 1:95876081cc0d | 422 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 423 | Tune(Buzzer, A_5, 5); //43 |
naikhar0 | 1:95876081cc0d | 424 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 425 | Tune(Buzzer, G_5, 14); //44 |
naikhar0 | 1:95876081cc0d | 426 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 427 | Tune(Buzzer, G_4, 2); //45 |
naikhar0 | 1:95876081cc0d | 428 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 429 | Tune(Buzzer, B_4, 4); //46 |
naikhar0 | 1:95876081cc0d | 430 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 431 | Tune(Buzzer, A_4, 4); //47 |
naikhar0 | 1:95876081cc0d | 432 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 433 | Tune(Buzzer, G_4, 4); //48 |
naikhar0 | 1:95876081cc0d | 434 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 435 | Tune(Buzzer, G_4, 4); //49 |
naikhar0 | 1:95876081cc0d | 436 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 437 | Tune(Buzzer, B_4, 2); //50 |
naikhar0 | 1:95876081cc0d | 438 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 439 | Tune(Buzzer, A_4, 4); //51 |
naikhar0 | 1:95876081cc0d | 440 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 441 | Tune(Buzzer, G_4, 6); //52 |
naikhar0 | 1:95876081cc0d | 442 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 443 | Tune(Buzzer, G_4, 2); //53 |
naikhar0 | 1:95876081cc0d | 444 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 445 | Tune(Buzzer, B_4, 2); //54 |
naikhar0 | 1:95876081cc0d | 446 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 447 | Tune(Buzzer, A_4, 4); //55 |
naikhar0 | 1:95876081cc0d | 448 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 449 | Tune(Buzzer, G_4, 6); //56 |
naikhar0 | 1:95876081cc0d | 450 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 451 | Tune(Buzzer, G_4, 2); //57 |
naikhar0 | 1:95876081cc0d | 452 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 453 | Tune(Buzzer, C_5, 4); //58 |
naikhar0 | 1:95876081cc0d | 454 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 455 | Tune(Buzzer, B_4, 4); //59 |
naikhar0 | 1:95876081cc0d | 456 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 457 | Tune(Buzzer, G_4, 4); //60 |
naikhar0 | 1:95876081cc0d | 458 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 459 | Tune(Buzzer, Fs_4, 6); //61 |
naikhar0 | 1:95876081cc0d | 460 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 461 | Tune(Buzzer, G_4, 2); //62 |
naikhar0 | 1:95876081cc0d | 462 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 463 | Tune(Buzzer, B_5, 4); //63 |
naikhar0 | 1:95876081cc0d | 464 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 465 | Tune(Buzzer, B_4, 6); //64 |
naikhar0 | 1:95876081cc0d | 466 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 467 | Tune(Buzzer, G_4, 4); //65 |
naikhar0 | 1:95876081cc0d | 468 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 469 | Tune(Buzzer, C_5, 4); //66 |
naikhar0 | 1:95876081cc0d | 470 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 471 | Tune(Buzzer, B_4, 2); //67 |
naikhar0 | 1:95876081cc0d | 472 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 473 | Tune(Buzzer, B_4, 10); //68 |
naikhar0 | 1:95876081cc0d | 474 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 475 | Tune(Buzzer, A_4, 2); //69 |
naikhar0 | 1:95876081cc0d | 476 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 477 | Tune(Buzzer, A_4, 4); //70 |
naikhar0 | 1:95876081cc0d | 478 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 479 | Tune(Buzzer, A_4, 4); //71 |
naikhar0 | 1:95876081cc0d | 480 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 481 | Tune(Buzzer, A_4, 6); //72 |
naikhar0 | 1:95876081cc0d | 482 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 483 | Tune(Buzzer, A_4, 4); //73 |
naikhar0 | 1:95876081cc0d | 484 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 485 | Tune(Buzzer, G_4, 4); //74 |
naikhar0 | 1:95876081cc0d | 486 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 487 | Tune(Buzzer, A_4, 4); //75 |
naikhar0 | 1:95876081cc0d | 488 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 489 | Tune(Buzzer, B_4, 4); //76 |
naikhar0 | 1:95876081cc0d | 490 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 491 | Tune(Buzzer, A_4, 4); //77 |
naikhar0 | 1:95876081cc0d | 492 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 493 | Tune(Buzzer, G_4, 4); //78 |
naikhar0 | 1:95876081cc0d | 494 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 495 | Tune(Buzzer, G_4, 8); //79 |
naikhar0 | 1:95876081cc0d | 496 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 497 | Tune(Buzzer, G_4, 8); //80 |
naikhar0 | 1:95876081cc0d | 498 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 499 | Tune(Buzzer, 0, 4); //81 |
naikhar0 | 1:95876081cc0d | 500 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 501 | Tune(Buzzer, B_4, 4); //82 |
naikhar0 | 1:95876081cc0d | 502 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 503 | Tune(Buzzer, A_4, 4); //83 |
naikhar0 | 1:95876081cc0d | 504 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 505 | Tune(Buzzer, G_4, 2); //84 |
naikhar0 | 1:95876081cc0d | 506 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 507 | Tune(Buzzer, A_4, 2); //85 |
naikhar0 | 1:95876081cc0d | 508 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 509 | Tune(Buzzer, A_4, 8); //86 |
naikhar0 | 1:95876081cc0d | 510 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 511 | Tune(Buzzer, A_4, 8); //87 |
naikhar0 | 1:95876081cc0d | 512 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 513 | Tune(Buzzer, 0, 4); //88 |
naikhar0 | 1:95876081cc0d | 514 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 515 | Tune(Buzzer, C_5, 4); //89 |
naikhar0 | 1:95876081cc0d | 516 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 517 | Tune(Buzzer, B_4, 4); //90 |
naikhar0 | 1:95876081cc0d | 518 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 519 | Tune(Buzzer, A_4, 2); //91 |
naikhar0 | 1:95876081cc0d | 520 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 521 | Tune(Buzzer, B_4, 2); //92 |
naikhar0 | 1:95876081cc0d | 522 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 523 | Tune(Buzzer, B_4, 8); //93 |
naikhar0 | 1:95876081cc0d | 524 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 525 | Tune(Buzzer, B_4, 8); //94 |
naikhar0 | 1:95876081cc0d | 526 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 527 | Tune(Buzzer, Fs_4, 8); //95 |
naikhar0 | 1:95876081cc0d | 528 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 529 | Tune(Buzzer, G_4, 4); //96 |
naikhar0 | 1:95876081cc0d | 530 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 531 | Tune(Buzzer, C_4, 20); //97 |
naikhar0 | 1:95876081cc0d | 532 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 533 | Tune(Buzzer, 0, 4); //98 |
naikhar0 | 1:95876081cc0d | 534 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 535 | Tune(Buzzer, B_4, 4); //99 |
naikhar0 | 1:95876081cc0d | 536 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 537 | Tune(Buzzer, A_4, 4); //100 |
naikhar0 | 1:95876081cc0d | 538 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 539 | Tune(Buzzer, G_4, 4); //101 |
naikhar0 | 1:95876081cc0d | 540 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 541 | Tune(Buzzer, G_4, 8); //102 |
naikhar0 | 1:95876081cc0d | 542 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 543 | Tune(Buzzer, G_4, 8); //103 |
naikhar0 | 1:95876081cc0d | 544 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 545 | Tune(Buzzer, G_4, 2); //104 |
naikhar0 | 1:95876081cc0d | 546 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 547 | Tune(Buzzer, A_4, 2); //105 |
naikhar0 | 1:95876081cc0d | 548 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 549 | Tune(Buzzer, B_4, 4); //106 |
naikhar0 | 1:95876081cc0d | 550 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 551 | Tune(Buzzer, A_4, 4); //107 |
naikhar0 | 1:95876081cc0d | 552 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 553 | Tune(Buzzer, G_4, 2); //108 |
naikhar0 | 1:95876081cc0d | 554 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 555 | Tune(Buzzer, A_4, 2); //109 |
naikhar0 | 1:95876081cc0d | 556 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 557 | Tune(Buzzer, A_4, 8); //110 |
naikhar0 | 1:95876081cc0d | 558 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 559 | Tune(Buzzer, A_4, 8); //111 |
naikhar0 | 1:95876081cc0d | 560 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 561 | Tune(Buzzer, 0, 4); //112 |
naikhar0 | 1:95876081cc0d | 562 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 563 | Tune(Buzzer, B_4, 4); //113 |
naikhar0 | 1:95876081cc0d | 564 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 565 | Tune(Buzzer, B_4, 4); //114 |
naikhar0 | 1:95876081cc0d | 566 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 567 | Tune(Buzzer, A_4, 2); //115 |
naikhar0 | 1:95876081cc0d | 568 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 569 | Tune(Buzzer, B_4, 2); //116 |
naikhar0 | 1:95876081cc0d | 570 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 571 | Tune(Buzzer, B_4, 8); //117 |
naikhar0 | 1:95876081cc0d | 572 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 573 | Tune(Buzzer, B_4, 8); //118 |
naikhar0 | 1:95876081cc0d | 574 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 575 | Tune(Buzzer, A_4, 8); //119 |
naikhar0 | 1:95876081cc0d | 576 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 577 | Tune(Buzzer, G_4, 4); //120 |
naikhar0 | 1:95876081cc0d | 578 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 579 | Tune(Buzzer, G_4, 2); //121 |
naikhar0 | 1:95876081cc0d | 580 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 581 | Tune(Buzzer, G_4, 2); //122 |
naikhar0 | 1:95876081cc0d | 582 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 583 | Tune(Buzzer, D_5, 4); //123 |
naikhar0 | 1:95876081cc0d | 584 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 585 | Tune(Buzzer, D_4, 2); //124 |
naikhar0 | 1:95876081cc0d | 586 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 587 | Tune(Buzzer, D_4, 2); //125 |
naikhar0 | 1:95876081cc0d | 588 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 589 | Tune(Buzzer, B_4, 4); //126 |
naikhar0 | 1:95876081cc0d | 590 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 591 | Tune(Buzzer, G_4, 2); //127 |
naikhar0 | 1:95876081cc0d | 592 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 593 | Tune(Buzzer, D_5, 4); //128 |
naikhar0 | 1:95876081cc0d | 594 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 595 | Tune(Buzzer, D_5, 4); //129 |
naikhar0 | 1:95876081cc0d | 596 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 597 | Tune(Buzzer, D_5, 2); //130 |
naikhar0 | 1:95876081cc0d | 598 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 599 | Tune(Buzzer, B_4, 6); //131 |
naikhar0 | 1:95876081cc0d | 600 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 601 | Tune(Buzzer, G_4, 2); //132 |
naikhar0 | 1:95876081cc0d | 602 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 603 | Tune(Buzzer, B_4, 16); //133 |
naikhar0 | 1:95876081cc0d | 604 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 605 | Tune(Buzzer, A_4, 14); //134 |
naikhar0 | 1:95876081cc0d | 606 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 607 | Tune(Buzzer, G_4, 2); //135 |
naikhar0 | 1:95876081cc0d | 608 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 609 | Tune(Buzzer, A_4, 4); //136 |
naikhar0 | 1:95876081cc0d | 610 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 611 | Tune(Buzzer, A_4, 4); //137 |
naikhar0 | 1:95876081cc0d | 612 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 613 | Tune(Buzzer, A_4, 6); //138 |
naikhar0 | 1:95876081cc0d | 614 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 615 | Tune(Buzzer, G_4, 2); //139 |
naikhar0 | 1:95876081cc0d | 616 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 617 | Tune(Buzzer, A_4, 2); //140 |
naikhar0 | 1:95876081cc0d | 618 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 619 | Tune(Buzzer, G_4, 2); //141 |
naikhar0 | 1:95876081cc0d | 620 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 621 | Tune(Buzzer, B_4, 4); //142 |
naikhar0 | 1:95876081cc0d | 622 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 623 | Tune(Buzzer, B_4, 4); //143 |
naikhar0 | 1:95876081cc0d | 624 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 625 | Tune(Buzzer, G_4, 4); //144 |
naikhar0 | 1:95876081cc0d | 626 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 627 | Tune(Buzzer, G_4, 32); //145 |
naikhar0 | 1:95876081cc0d | 628 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 629 | Tune(Buzzer, D_4, 10); //146 |
naikhar0 | 1:95876081cc0d | 630 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 631 | Tune(Buzzer, D_4, 8); //147 |
naikhar0 | 1:95876081cc0d | 632 | wait_ms(25); |
naikhar0 | 1:95876081cc0d | 633 | |
naikhar0 | 1:95876081cc0d | 634 | |
naikhar0 | 1:95876081cc0d | 635 | |
naikhar0 | 1:95876081cc0d | 636 | redLed = LED_OFF; |
naikhar0 | 1:95876081cc0d | 637 | greenLed = LED_OFF; |
naikhar0 | 1:95876081cc0d | 638 | blueLed = LED_OFF; |
naikhar0 | 1:95876081cc0d | 639 | } |
naikhar0 | 1:95876081cc0d | 640 | //-------------------------Yellow LED------------------------------------------- |
naikhar0 | 1:95876081cc0d | 641 | void ButtonUp(void) |
naikhar0 | 1:95876081cc0d | 642 | { |
naikhar0 | 1:95876081cc0d | 643 | StartHaptic(); |
naikhar0 | 1:95876081cc0d | 644 | |
naikhar0 | 1:95876081cc0d | 645 | redLed = LED_ON; |
naikhar0 | 1:95876081cc0d | 646 | greenLed = LED_ON; |
naikhar0 | 1:95876081cc0d | 647 | blueLed = LED_OFF; |
naikhar0 | 1:95876081cc0d | 648 | |
naikhar0 | 1:95876081cc0d | 649 | oled.DrawImage(image1,0,0); |
naikhar0 | 1:95876081cc0d | 650 | oled_text_properties_t textProperties = {0}; |
naikhar0 | 1:95876081cc0d | 651 | oled.GetTextProperties(&textProperties); |
naikhar0 | 1:95876081cc0d | 652 | |
naikhar0 | 1:95876081cc0d | 653 | /* Set text properties to white and right aligned for the dynamic text */ |
naikhar0 | 1:95876081cc0d | 654 | textProperties.fontColor = COLOR_YELLOW; |
naikhar0 | 1:95876081cc0d | 655 | textProperties.alignParam = OLED_TEXT_ALIGN_LEFT; |
naikhar0 | 1:95876081cc0d | 656 | oled.SetTextProperties(&textProperties); |
naikhar0 | 1:95876081cc0d | 657 | /* Display text2 */ |
naikhar0 | 1:95876081cc0d | 658 | strcpy((char *) text1,"When yellow LED"); |
naikhar0 | 1:95876081cc0d | 659 | oled.Label((uint8_t *)text1,3,28); |
naikhar0 | 1:95876081cc0d | 660 | /* Display text3 */ |
naikhar0 | 1:95876081cc0d | 661 | strcpy((char *) text2,"turns off, press"); //17 characters max length per statement |
naikhar0 | 1:95876081cc0d | 662 | oled.Label((uint8_t *)text2,3,41); |
naikhar0 | 1:95876081cc0d | 663 | /* Display text4 */ |
naikhar0 | 1:95876081cc0d | 664 | strcpy((char *) text3,"another button"); |
naikhar0 | 1:95876081cc0d | 665 | oled.Label((uint8_t *)text3,3,54); |
naikhar0 | 1:95876081cc0d | 666 | /* Display text5 */ |
naikhar0 | 1:95876081cc0d | 667 | strcpy((char *) text4,"to play"); |
naikhar0 | 1:95876081cc0d | 668 | oled.Label((uint8_t *)text4,3,67); |
naikhar0 | 1:95876081cc0d | 669 | /* Register callbacks to application functions */ |
naikhar0 | 1:95876081cc0d | 670 | strcpy((char *)text5,"another song"); |
naikhar0 | 1:95876081cc0d | 671 | oled.Label((uint8_t *)text5,3,80); |
naikhar0 | 1:95876081cc0d | 672 | |
naikhar0 | 1:95876081cc0d | 673 | for(i=0; i<tones_num2; i++) |
naikhar0 | 1:95876081cc0d | 674 | { |
naikhar0 | 1:95876081cc0d | 675 | Auto_tunes(Buzzer, tones4[i], 4); // Auto performance |
naikhar0 | 1:95876081cc0d | 676 | Stop_tunes(Buzzer); |
naikhar0 | 1:95876081cc0d | 677 | } |
naikhar0 | 1:95876081cc0d | 678 | Tune(Buzzer, A_4, 8); //4 Octave F beat 4/16 |
naikhar0 | 1:95876081cc0d | 679 | Tune(Buzzer, F_4, 16); //4 Octave F beat 4/16 |
naikhar0 | 1:95876081cc0d | 680 | wait_ms(250); |
naikhar0 | 1:95876081cc0d | 681 | |
naikhar0 | 1:95876081cc0d | 682 | redLed = LED_OFF; |
naikhar0 | 1:95876081cc0d | 683 | greenLed = LED_OFF; |
naikhar0 | 1:95876081cc0d | 684 | blueLed = LED_OFF; |
naikhar0 | 1:95876081cc0d | 685 | } |
naikhar0 | 1:95876081cc0d | 686 | |
naikhar0 | 1:95876081cc0d | 687 | |
naikhar0 | 1:95876081cc0d | 688 | /*------------------MAIN------------------------------------------------------*/ |
naikhar0 | 1:95876081cc0d | 689 | |
naikhar0 | 1:95876081cc0d | 690 | // main() runs in its own thread in the OS |
naikhar0 | 1:95876081cc0d | 691 | // (note the calls to Thread::wait below for delays) |
naikhar0 | 1:95876081cc0d | 692 | |
naikhar0 | 1:95876081cc0d | 693 | int main() |
naikhar0 | 1:95876081cc0d | 694 | { |
naikhar0 | 1:95876081cc0d | 695 | while(true) |
naikhar0 | 1:95876081cc0d | 696 | { |
naikhar0 | 1:95876081cc0d | 697 | // Setting pointer location of the 96 by 96 pixel bitmap |
naikhar0 | 1:95876081cc0d | 698 | image1 = Accelero; |
naikhar0 | 1:95876081cc0d | 699 | // Fill 96px by 96px Screen with 96px by 96px NXP Image starting at x=0,y=0 |
naikhar0 | 1:95876081cc0d | 700 | oled.DrawImage(image1,0,0); |
naikhar0 | 1:95876081cc0d | 701 | |
naikhar0 | 1:95876081cc0d | 702 | redLed = LED_ON; |
naikhar0 | 1:95876081cc0d | 703 | greenLed = LED_OFF; |
naikhar0 | 1:95876081cc0d | 704 | blueLed = LED_OFF; |
naikhar0 | 1:95876081cc0d | 705 | wait(1); |
naikhar0 | 1:95876081cc0d | 706 | |
naikhar0 | 1:95876081cc0d | 707 | redLed = LED_OFF; |
naikhar0 | 1:95876081cc0d | 708 | greenLed = LED_ON; |
naikhar0 | 1:95876081cc0d | 709 | blueLed = LED_OFF; |
naikhar0 | 1:95876081cc0d | 710 | wait(1); |
naikhar0 | 1:95876081cc0d | 711 | |
naikhar0 | 1:95876081cc0d | 712 | redLed = LED_OFF; |
naikhar0 | 1:95876081cc0d | 713 | greenLed = LED_OFF; |
naikhar0 | 1:95876081cc0d | 714 | blueLed = LED_ON; |
naikhar0 | 1:95876081cc0d | 715 | wait(1); |
naikhar0 | 1:95876081cc0d | 716 | |
naikhar0 | 1:95876081cc0d | 717 | oled_text_properties_t textProperties = {0}; |
naikhar0 | 1:95876081cc0d | 718 | oled.GetTextProperties(&textProperties); |
naikhar0 | 1:95876081cc0d | 719 | /* Set text properties to white and right aligned for the dynamic text */ |
naikhar0 | 1:95876081cc0d | 720 | textProperties.fontColor = COLOR_YELLOW; |
naikhar0 | 1:95876081cc0d | 721 | textProperties.alignParam = OLED_TEXT_ALIGN_LEFT; |
naikhar0 | 1:95876081cc0d | 722 | oled.SetTextProperties(&textProperties); |
naikhar0 | 1:95876081cc0d | 723 | /* Display text2 */ |
naikhar0 | 1:95876081cc0d | 724 | strcpy((char *) text1,"Hello! Press the "); |
naikhar0 | 1:95876081cc0d | 725 | oled.Label((uint8_t *)text1,3,28); |
naikhar0 | 1:95876081cc0d | 726 | /* Display text3 */ |
naikhar0 | 1:95876081cc0d | 727 | strcpy((char *) text2,"the left, right, "); //17 characters max length per statement |
naikhar0 | 1:95876081cc0d | 728 | oled.Label((uint8_t *)text2,3,41); |
naikhar0 | 1:95876081cc0d | 729 | /* Display text4 */ |
naikhar0 | 1:95876081cc0d | 730 | strcpy((char *) text3,"top, or bottom "); |
naikhar0 | 1:95876081cc0d | 731 | oled.Label((uint8_t *)text3,3,54); |
naikhar0 | 1:95876081cc0d | 732 | /* Display text5 */ |
naikhar0 | 1:95876081cc0d | 733 | strcpy((char *) text4,"buttons to play "); |
naikhar0 | 1:95876081cc0d | 734 | oled.Label((uint8_t *)text4,3,67); |
naikhar0 | 1:95876081cc0d | 735 | /* Register callbacks to application functions */ |
naikhar0 | 1:95876081cc0d | 736 | strcpy((char *)text5,"a song "); |
naikhar0 | 1:95876081cc0d | 737 | oled.Label((uint8_t *)text5,3,80); |
naikhar0 | 1:95876081cc0d | 738 | |
naikhar0 | 1:95876081cc0d | 739 | kw40z_device.attach_buttonUp(&ButtonUp); |
naikhar0 | 1:95876081cc0d | 740 | kw40z_device.attach_buttonDown(&ButtonDown); |
naikhar0 | 1:95876081cc0d | 741 | kw40z_device.attach_buttonLeft(&ButtonLeft); |
naikhar0 | 1:95876081cc0d | 742 | kw40z_device.attach_buttonRight(&ButtonRight); |
naikhar0 | 1:95876081cc0d | 743 | while(true){ |
naikhar0 | 1:95876081cc0d | 744 | Thread::wait(500);} |
naikhar0 | 1:95876081cc0d | 745 | } |
naikhar0 | 1:95876081cc0d | 746 | } |
naikhar0 | 1:95876081cc0d | 747 | |
naikhar0 | 1:95876081cc0d | 748 | void StartHaptic(void) |
naikhar0 | 1:95876081cc0d | 749 | { |
naikhar0 | 1:95876081cc0d | 750 | hapticTimer.start(50); |
naikhar0 | 1:95876081cc0d | 751 | haptic = 1; |
naikhar0 | 1:95876081cc0d | 752 | } |
naikhar0 | 1:95876081cc0d | 753 | |
naikhar0 | 1:95876081cc0d | 754 | void StopHaptic(void const *n) |
naikhar0 | 1:95876081cc0d | 755 | { |
naikhar0 | 1:95876081cc0d | 756 | haptic = 0; |
naikhar0 | 1:95876081cc0d | 757 | hapticTimer.stop(); |
naikhar0 | 1:95876081cc0d | 758 | } |