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 Hexiwear

ECE Department IUPUI

Committer:
naikhar0
Date:
Wed Apr 12 14:06:31 2017 +0000
Revision:
1:95876081cc0d
plays 4 songs

Who changed what in which revision?

UserRevisionLine numberNew 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 }