update
Dependencies: 4DGL-uLCD-SE mbed-rtos mbed wave_player
Fork of Lab3 by
Part2.cpp@0:8af0a4200bd0, 2016-10-13 (annotated)
- Committer:
- aismail1997
- Date:
- Thu Oct 13 10:06:25 2016 +0000
- Revision:
- 0:8af0a4200bd0
- Child:
- 1:3af15e979565
updates
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
aismail1997 | 0:8af0a4200bd0 | 1 | #include "mbed.h" |
aismail1997 | 0:8af0a4200bd0 | 2 | #include "rtos.h" |
aismail1997 | 0:8af0a4200bd0 | 3 | #include "uLCD_4DGL.h" |
aismail1997 | 0:8af0a4200bd0 | 4 | #include "SDFileSystem.h" |
aismail1997 | 0:8af0a4200bd0 | 5 | #include "wave_player.h" |
aismail1997 | 0:8af0a4200bd0 | 6 | #include <mpr121.h> |
aismail1997 | 0:8af0a4200bd0 | 7 | |
aismail1997 | 0:8af0a4200bd0 | 8 | // mutex to make the lcd lib thread safe |
aismail1997 | 0:8af0a4200bd0 | 9 | Mutex lcd_mutex; |
aismail1997 | 0:8af0a4200bd0 | 10 | //SDFileSystem sd(p5, p6, p7, p8, "sd"); //SD card |
aismail1997 | 0:8af0a4200bd0 | 11 | //AnalogOut speaker(p26); |
aismail1997 | 0:8af0a4200bd0 | 12 | //wave_player waver(&speaker); |
aismail1997 | 0:8af0a4200bd0 | 13 | uLCD_4DGL uLCD(p28,p27,p30); // serial tx, serial rx, reset pin; |
aismail1997 | 0:8af0a4200bd0 | 14 | //BusIn joy(p15,p12,p13,p16); |
aismail1997 | 0:8af0a4200bd0 | 15 | BusOut leds(LED1,LED2,LED3,LED4); |
aismail1997 | 0:8af0a4200bd0 | 16 | DigitalIn joyfire(p14); |
aismail1997 | 0:8af0a4200bd0 | 17 | |
aismail1997 | 0:8af0a4200bd0 | 18 | // Shiftbrite stuff |
aismail1997 | 0:8af0a4200bd0 | 19 | DigitalOut latch(p15); |
aismail1997 | 0:8af0a4200bd0 | 20 | DigitalOut enable(p16); |
aismail1997 | 0:8af0a4200bd0 | 21 | |
aismail1997 | 0:8af0a4200bd0 | 22 | SPI spi(p11, p12, p13); |
aismail1997 | 0:8af0a4200bd0 | 23 | |
aismail1997 | 0:8af0a4200bd0 | 24 | // Create the interrupt receiver object on pin 26 |
aismail1997 | 0:8af0a4200bd0 | 25 | InterruptIn interrupt(p26); |
aismail1997 | 0:8af0a4200bd0 | 26 | // Setup the i2c bus on pins 9 and 10 |
aismail1997 | 0:8af0a4200bd0 | 27 | I2C i2c(p9, p10); |
aismail1997 | 0:8af0a4200bd0 | 28 | // Setup the Mpr121: |
aismail1997 | 0:8af0a4200bd0 | 29 | // constructor(i2c object, i2c address of the mpr121) |
aismail1997 | 0:8af0a4200bd0 | 30 | Mpr121 mpr121(&i2c, Mpr121::ADD_VSS); |
aismail1997 | 0:8af0a4200bd0 | 31 | |
aismail1997 | 0:8af0a4200bd0 | 32 | |
aismail1997 | 0:8af0a4200bd0 | 33 | DigitalOut led1(LED1); |
aismail1997 | 0:8af0a4200bd0 | 34 | DigitalOut led2(LED2); |
aismail1997 | 0:8af0a4200bd0 | 35 | DigitalOut led3(LED3); |
aismail1997 | 0:8af0a4200bd0 | 36 | DigitalOut led4(LED4); |
aismail1997 | 0:8af0a4200bd0 | 37 | |
aismail1997 | 0:8af0a4200bd0 | 38 | // global variables |
aismail1997 | 0:8af0a4200bd0 | 39 | int light = 0; // to keep track of lighting |
aismail1997 | 0:8af0a4200bd0 | 40 | int sound = 0; // to keep track of sound |
aismail1997 | 0:8af0a4200bd0 | 41 | // led lights |
aismail1997 | 0:8af0a4200bd0 | 42 | //int red; |
aismail1997 | 0:8af0a4200bd0 | 43 | //int green; |
aismail1997 | 0:8af0a4200bd0 | 44 | //int blue; |
aismail1997 | 0:8af0a4200bd0 | 45 | |
aismail1997 | 0:8af0a4200bd0 | 46 | //AnalogIn photocell(p15); |
aismail1997 | 0:8af0a4200bd0 | 47 | PwmOut myled(LED1); |
aismail1997 | 0:8af0a4200bd0 | 48 | |
aismail1997 | 0:8af0a4200bd0 | 49 | class microphone |
aismail1997 | 0:8af0a4200bd0 | 50 | { |
aismail1997 | 0:8af0a4200bd0 | 51 | public : |
aismail1997 | 0:8af0a4200bd0 | 52 | microphone(PinName pin); |
aismail1997 | 0:8af0a4200bd0 | 53 | float read(); |
aismail1997 | 0:8af0a4200bd0 | 54 | operator float (); |
aismail1997 | 0:8af0a4200bd0 | 55 | private : |
aismail1997 | 0:8af0a4200bd0 | 56 | AnalogIn _pin; |
aismail1997 | 0:8af0a4200bd0 | 57 | }; |
aismail1997 | 0:8af0a4200bd0 | 58 | microphone::microphone (PinName pin): |
aismail1997 | 0:8af0a4200bd0 | 59 | _pin(pin) |
aismail1997 | 0:8af0a4200bd0 | 60 | { |
aismail1997 | 0:8af0a4200bd0 | 61 | } |
aismail1997 | 0:8af0a4200bd0 | 62 | |
aismail1997 | 0:8af0a4200bd0 | 63 | float microphone::read() |
aismail1997 | 0:8af0a4200bd0 | 64 | { |
aismail1997 | 0:8af0a4200bd0 | 65 | return _pin.read(); |
aismail1997 | 0:8af0a4200bd0 | 66 | } |
aismail1997 | 0:8af0a4200bd0 | 67 | |
aismail1997 | 0:8af0a4200bd0 | 68 | inline microphone::operator float () |
aismail1997 | 0:8af0a4200bd0 | 69 | { |
aismail1997 | 0:8af0a4200bd0 | 70 | return _pin.read(); |
aismail1997 | 0:8af0a4200bd0 | 71 | } |
aismail1997 | 0:8af0a4200bd0 | 72 | |
aismail1997 | 0:8af0a4200bd0 | 73 | //microphone mymicrophone(p16); |
aismail1997 | 0:8af0a4200bd0 | 74 | |
aismail1997 | 0:8af0a4200bd0 | 75 | void RGB_LED(int red, int green, int blue) |
aismail1997 | 0:8af0a4200bd0 | 76 | { |
aismail1997 | 0:8af0a4200bd0 | 77 | unsigned int low_color=0; |
aismail1997 | 0:8af0a4200bd0 | 78 | unsigned int high_color=0; |
aismail1997 | 0:8af0a4200bd0 | 79 | high_color=(blue<<4)|((red&0x3C0)>>6); |
aismail1997 | 0:8af0a4200bd0 | 80 | low_color=(((red&0x3F)<<10)|(green)); |
aismail1997 | 0:8af0a4200bd0 | 81 | spi.write(high_color); |
aismail1997 | 0:8af0a4200bd0 | 82 | spi.write(low_color); |
aismail1997 | 0:8af0a4200bd0 | 83 | latch=1; |
aismail1997 | 0:8af0a4200bd0 | 84 | latch=0; |
aismail1997 | 0:8af0a4200bd0 | 85 | } |
aismail1997 | 0:8af0a4200bd0 | 86 | |
aismail1997 | 0:8af0a4200bd0 | 87 | // create threads |
aismail1997 | 0:8af0a4200bd0 | 88 | // first thread dealing with LCD |
aismail1997 | 0:8af0a4200bd0 | 89 | void LCD_thread1(void const *args) |
aismail1997 | 0:8af0a4200bd0 | 90 | { |
aismail1997 | 0:8af0a4200bd0 | 91 | while(true) { // thread loop |
aismail1997 | 0:8af0a4200bd0 | 92 | lcd_mutex.lock(); |
aismail1997 | 0:8af0a4200bd0 | 93 | if (light == 0 && sound == 1) { |
aismail1997 | 0:8af0a4200bd0 | 94 | // display red siren |
aismail1997 | 0:8af0a4200bd0 | 95 | uLCD.filled_circle(SIZE_X/2, SIZE_Y/2, 10, RED); |
aismail1997 | 0:8af0a4200bd0 | 96 | uLCD.filled_rectangle(SIZE_X/2 - 10, SIZE_Y/2, SIZE_X/2 + 10, SIZE_Y/2 + 30, RED); |
aismail1997 | 0:8af0a4200bd0 | 97 | } else if (light == 1 ) { |
aismail1997 | 0:8af0a4200bd0 | 98 | // display white siren |
aismail1997 | 0:8af0a4200bd0 | 99 | uLCD.filled_circle(SIZE_X/2, SIZE_Y/2, 10, WHITE); |
aismail1997 | 0:8af0a4200bd0 | 100 | uLCD.filled_rectangle(SIZE_X/2 - 10, SIZE_Y/2, SIZE_X/2 + 10, SIZE_Y/2 + 30, WHITE); |
aismail1997 | 0:8af0a4200bd0 | 101 | } else if (light == 2 && sound == 1) { |
aismail1997 | 0:8af0a4200bd0 | 102 | // display blue siren |
aismail1997 | 0:8af0a4200bd0 | 103 | uLCD.filled_circle(SIZE_X/2, SIZE_Y/2, 10, BLUE); |
aismail1997 | 0:8af0a4200bd0 | 104 | uLCD.filled_rectangle(SIZE_X/2 - 10, SIZE_Y/2, SIZE_X/2 + 10, SIZE_Y/2 + 30, BLUE); |
aismail1997 | 0:8af0a4200bd0 | 105 | } |
aismail1997 | 0:8af0a4200bd0 | 106 | lcd_mutex.unlock(); |
aismail1997 | 0:8af0a4200bd0 | 107 | Thread::wait(5); // wait till thread is done |
aismail1997 | 0:8af0a4200bd0 | 108 | } |
aismail1997 | 0:8af0a4200bd0 | 109 | } |
aismail1997 | 0:8af0a4200bd0 | 110 | |
aismail1997 | 0:8af0a4200bd0 | 111 | // second thread dealing with LCD |
aismail1997 | 0:8af0a4200bd0 | 112 | void LCD_thread2(void const *args) |
aismail1997 | 0:8af0a4200bd0 | 113 | { |
aismail1997 | 0:8af0a4200bd0 | 114 | while(true) { // thread loop |
aismail1997 | 0:8af0a4200bd0 | 115 | lcd_mutex.lock(); |
aismail1997 | 0:8af0a4200bd0 | 116 | if (sound == 1) { |
aismail1997 | 0:8af0a4200bd0 | 117 | // some indication there is audio |
aismail1997 | 0:8af0a4200bd0 | 118 | // text saying "!ALERT!" |
aismail1997 | 0:8af0a4200bd0 | 119 | uLCD.color(0xFF0000); |
aismail1997 | 0:8af0a4200bd0 | 120 | uLCD.locate(6,1); |
aismail1997 | 0:8af0a4200bd0 | 121 | uLCD.set_font_size(7, 7); |
aismail1997 | 0:8af0a4200bd0 | 122 | uLCD.printf("!ALERT !"); |
aismail1997 | 0:8af0a4200bd0 | 123 | } else if (sound == 0) { |
aismail1997 | 0:8af0a4200bd0 | 124 | uLCD.color(0x000000); |
aismail1997 | 0:8af0a4200bd0 | 125 | uLCD.locate(6,1); |
aismail1997 | 0:8af0a4200bd0 | 126 | uLCD.set_font_size(7, 7); |
aismail1997 | 0:8af0a4200bd0 | 127 | uLCD.printf("!ALERT !"); |
aismail1997 | 0:8af0a4200bd0 | 128 | // no indication |
aismail1997 | 0:8af0a4200bd0 | 129 | // text removed |
aismail1997 | 0:8af0a4200bd0 | 130 | |
aismail1997 | 0:8af0a4200bd0 | 131 | } |
aismail1997 | 0:8af0a4200bd0 | 132 | lcd_mutex.unlock(); |
aismail1997 | 0:8af0a4200bd0 | 133 | Thread::wait(5); // wait till thread is done |
aismail1997 | 0:8af0a4200bd0 | 134 | } |
aismail1997 | 0:8af0a4200bd0 | 135 | } |
aismail1997 | 0:8af0a4200bd0 | 136 | |
aismail1997 | 0:8af0a4200bd0 | 137 | // thread dealing with speaker |
aismail1997 | 0:8af0a4200bd0 | 138 | |
aismail1997 | 0:8af0a4200bd0 | 139 | void speaker_thread(void const *args) |
aismail1997 | 0:8af0a4200bd0 | 140 | { |
aismail1997 | 0:8af0a4200bd0 | 141 | |
aismail1997 | 0:8af0a4200bd0 | 142 | /* FILE *wave_file; |
aismail1997 | 0:8af0a4200bd0 | 143 | wave_file = fopen("/sd/police_siren.wav","r"); |
aismail1997 | 0:8af0a4200bd0 | 144 | // play siren |
aismail1997 | 0:8af0a4200bd0 | 145 | while(true) { // thread loop |
aismail1997 | 0:8af0a4200bd0 | 146 | sound = 1; |
aismail1997 | 0:8af0a4200bd0 | 147 | //wait(5); |
aismail1997 | 0:8af0a4200bd0 | 148 | waver.play(wave_file); |
aismail1997 | 0:8af0a4200bd0 | 149 | |
aismail1997 | 0:8af0a4200bd0 | 150 | // generate a 500Hz tone using PWM hardware output |
aismail1997 | 0:8af0a4200bd0 | 151 | //speaker.period(1.0/500.0); // 500hz period |
aismail1997 | 0:8af0a4200bd0 | 152 | //speaker =0.5; //50% duty cycle - max volume |
aismail1997 | 0:8af0a4200bd0 | 153 | //wait(3); |
aismail1997 | 0:8af0a4200bd0 | 154 | //speaker=0.0; // turn off audio |
aismail1997 | 0:8af0a4200bd0 | 155 | //wait(2); |
aismail1997 | 0:8af0a4200bd0 | 156 | speaker = 0; |
aismail1997 | 0:8af0a4200bd0 | 157 | wait(5); |
aismail1997 | 0:8af0a4200bd0 | 158 | Thread::wait(1000); // wait 1s |
aismail1997 | 0:8af0a4200bd0 | 159 | //speaker=0.0; // off |
aismail1997 | 0:8af0a4200bd0 | 160 | } |
aismail1997 | 0:8af0a4200bd0 | 161 | //Thread::wait(100); // wait 1s |
aismail1997 | 0:8af0a4200bd0 | 162 | |
aismail1997 | 0:8af0a4200bd0 | 163 | fclose(wave_file);*/ |
aismail1997 | 0:8af0a4200bd0 | 164 | } |
aismail1997 | 0:8af0a4200bd0 | 165 | |
aismail1997 | 0:8af0a4200bd0 | 166 | // thread reading from - ultrasonic sensor to do XYZ |
aismail1997 | 0:8af0a4200bd0 | 167 | |
aismail1997 | 0:8af0a4200bd0 | 168 | |
aismail1997 | 0:8af0a4200bd0 | 169 | // thread reading from - tactile switch to control RGB/sound/lcd |
aismail1997 | 0:8af0a4200bd0 | 170 | void switchthread(void const *args) |
aismail1997 | 0:8af0a4200bd0 | 171 | { |
aismail1997 | 0:8af0a4200bd0 | 172 | while(true) { // thread loop |
aismail1997 | 0:8af0a4200bd0 | 173 | /* if (joyfire) { |
aismail1997 | 0:8af0a4200bd0 | 174 | leds = 0xf; |
aismail1997 | 0:8af0a4200bd0 | 175 | } else { |
aismail1997 | 0:8af0a4200bd0 | 176 | leds = joy; |
aismail1997 | 0:8af0a4200bd0 | 177 | } |
aismail1997 | 0:8af0a4200bd0 | 178 | Thread::wait(1000); // wait 0.25s*/ |
aismail1997 | 0:8af0a4200bd0 | 179 | } |
aismail1997 | 0:8af0a4200bd0 | 180 | } |
aismail1997 | 0:8af0a4200bd0 | 181 | |
aismail1997 | 0:8af0a4200bd0 | 182 | // thread reading from - touch keypad same |
aismail1997 | 0:8af0a4200bd0 | 183 | void touchpad_thread(void const *args) |
aismail1997 | 0:8af0a4200bd0 | 184 | { |
aismail1997 | 0:8af0a4200bd0 | 185 | while(true) { // thread loop |
aismail1997 | 0:8af0a4200bd0 | 186 | int key_code=0; |
aismail1997 | 0:8af0a4200bd0 | 187 | int i=0; |
aismail1997 | 0:8af0a4200bd0 | 188 | int value=mpr121.read(0x00); |
aismail1997 | 0:8af0a4200bd0 | 189 | value +=mpr121.read(0x01)<<8; |
aismail1997 | 0:8af0a4200bd0 | 190 | // LED demo mod |
aismail1997 | 0:8af0a4200bd0 | 191 | i=0; |
aismail1997 | 0:8af0a4200bd0 | 192 | // puts key number out to LEDs for demo |
aismail1997 | 0:8af0a4200bd0 | 193 | for (i=0; i<12; i++) { |
aismail1997 | 0:8af0a4200bd0 | 194 | if (((value>>i)&0x01)==1) key_code=i+1; |
aismail1997 | 0:8af0a4200bd0 | 195 | } |
aismail1997 | 0:8af0a4200bd0 | 196 | led4=key_code & 0x01; |
aismail1997 | 0:8af0a4200bd0 | 197 | led3=(key_code>>1) & 0x01; |
aismail1997 | 0:8af0a4200bd0 | 198 | led2=(key_code>>2) & 0x01; |
aismail1997 | 0:8af0a4200bd0 | 199 | led1=(key_code>>3) & 0x01; |
aismail1997 | 0:8af0a4200bd0 | 200 | Thread::wait(1000); // wait 0.25s |
aismail1997 | 0:8af0a4200bd0 | 201 | } |
aismail1997 | 0:8af0a4200bd0 | 202 | } |
aismail1997 | 0:8af0a4200bd0 | 203 | |
aismail1997 | 0:8af0a4200bd0 | 204 | // thread reading from - light sensor to do something |
aismail1997 | 0:8af0a4200bd0 | 205 | void lightsensor_thread(void const *args) |
aismail1997 | 0:8af0a4200bd0 | 206 | { |
aismail1997 | 0:8af0a4200bd0 | 207 | while(true) { // thread loop |
aismail1997 | 0:8af0a4200bd0 | 208 | /* myled = photocell; |
aismail1997 | 0:8af0a4200bd0 | 209 | wait(0.1); |
aismail1997 | 0:8af0a4200bd0 | 210 | Thread::wait(1000); // wait 0.25s*/ |
aismail1997 | 0:8af0a4200bd0 | 211 | } |
aismail1997 | 0:8af0a4200bd0 | 212 | } |
aismail1997 | 0:8af0a4200bd0 | 213 | |
aismail1997 | 0:8af0a4200bd0 | 214 | // thread reading from - microphone to control rgb |
aismail1997 | 0:8af0a4200bd0 | 215 | void mic_thread(void const *args) |
aismail1997 | 0:8af0a4200bd0 | 216 | { |
aismail1997 | 0:8af0a4200bd0 | 217 | /* while(true) { // thread loop |
aismail1997 | 0:8af0a4200bd0 | 218 | //read in, subtract 0.67 DC bias, take absolute value, and scale up .1Vpp to 15 for builtin LED display |
aismail1997 | 0:8af0a4200bd0 | 219 | leds = int(abs((mymicrophone - (0.67/3.3)))*500.0); |
aismail1997 | 0:8af0a4200bd0 | 220 | //Use an 8kHz audio sample rate (phone quality audio); |
aismail1997 | 0:8af0a4200bd0 | 221 | wait(1.0/8000.0); |
aismail1997 | 0:8af0a4200bd0 | 222 | Thread::wait(1000); // wait 0.25s |
aismail1997 | 0:8af0a4200bd0 | 223 | }*/ |
aismail1997 | 0:8af0a4200bd0 | 224 | } |
aismail1997 | 0:8af0a4200bd0 | 225 | |
aismail1997 | 0:8af0a4200bd0 | 226 | int main() |
aismail1997 | 0:8af0a4200bd0 | 227 | { |
aismail1997 | 0:8af0a4200bd0 | 228 | //uLCD.cls(); |
aismail1997 | 0:8af0a4200bd0 | 229 | wait(1); |
aismail1997 | 0:8af0a4200bd0 | 230 | // shiftbrite stuff |
aismail1997 | 0:8af0a4200bd0 | 231 | |
aismail1997 | 0:8af0a4200bd0 | 232 | int red=0; |
aismail1997 | 0:8af0a4200bd0 | 233 | int green=0; |
aismail1997 | 0:8af0a4200bd0 | 234 | int blue=0; |
aismail1997 | 0:8af0a4200bd0 | 235 | spi.format(16,0); |
aismail1997 | 0:8af0a4200bd0 | 236 | spi.frequency(500000); |
aismail1997 | 0:8af0a4200bd0 | 237 | enable=0; |
aismail1997 | 0:8af0a4200bd0 | 238 | latch=0; |
aismail1997 | 0:8af0a4200bd0 | 239 | wait(2); |
aismail1997 | 0:8af0a4200bd0 | 240 | // draw police car base |
aismail1997 | 0:8af0a4200bd0 | 241 | |
aismail1997 | 0:8af0a4200bd0 | 242 | // call threads here |
aismail1997 | 0:8af0a4200bd0 | 243 | Thread t1(LCD_thread1); //start thread1 |
aismail1997 | 0:8af0a4200bd0 | 244 | Thread t2(LCD_thread2); //start thread2 |
aismail1997 | 0:8af0a4200bd0 | 245 | //Thread t4(speaker_thread); //start thread4 |
aismail1997 | 0:8af0a4200bd0 | 246 | //Thread t5(switchthread); //start thread5 |
aismail1997 | 0:8af0a4200bd0 | 247 | //Thread t6(touchpad_thread); //start thread6 |
aismail1997 | 0:8af0a4200bd0 | 248 | //Thread t7(lightsensor_thread); //start thread7 |
aismail1997 | 0:8af0a4200bd0 | 249 | //Thread t8(mic_thread); //start thread8 |
aismail1997 | 0:8af0a4200bd0 | 250 | |
aismail1997 | 0:8af0a4200bd0 | 251 | while(1) { |
aismail1997 | 0:8af0a4200bd0 | 252 | |
aismail1997 | 0:8af0a4200bd0 | 253 | if (sound == 0) { |
aismail1997 | 0:8af0a4200bd0 | 254 | RGB_LED(0,0,0); |
aismail1997 | 0:8af0a4200bd0 | 255 | //Thread::wait(500); |
aismail1997 | 0:8af0a4200bd0 | 256 | } else { |
aismail1997 | 0:8af0a4200bd0 | 257 | light = 0; |
aismail1997 | 0:8af0a4200bd0 | 258 | red = 200; // flash red light |
aismail1997 | 0:8af0a4200bd0 | 259 | green = 0; |
aismail1997 | 0:8af0a4200bd0 | 260 | blue = 0; |
aismail1997 | 0:8af0a4200bd0 | 261 | RGB_LED(red, green, blue); |
aismail1997 | 0:8af0a4200bd0 | 262 | wait(0.5); |
aismail1997 | 0:8af0a4200bd0 | 263 | |
aismail1997 | 0:8af0a4200bd0 | 264 | RGB_LED(0,0,0); |
aismail1997 | 0:8af0a4200bd0 | 265 | wait(0.5); |
aismail1997 | 0:8af0a4200bd0 | 266 | |
aismail1997 | 0:8af0a4200bd0 | 267 | light = 1; |
aismail1997 | 0:8af0a4200bd0 | 268 | red = 200; // flash white light |
aismail1997 | 0:8af0a4200bd0 | 269 | green = 200; |
aismail1997 | 0:8af0a4200bd0 | 270 | blue = 200; |
aismail1997 | 0:8af0a4200bd0 | 271 | RGB_LED( red, green, blue); |
aismail1997 | 0:8af0a4200bd0 | 272 | wait(0.5); |
aismail1997 | 0:8af0a4200bd0 | 273 | |
aismail1997 | 0:8af0a4200bd0 | 274 | RGB_LED(0,0,0); |
aismail1997 | 0:8af0a4200bd0 | 275 | wait(0.5); |
aismail1997 | 0:8af0a4200bd0 | 276 | |
aismail1997 | 0:8af0a4200bd0 | 277 | light = 2; |
aismail1997 | 0:8af0a4200bd0 | 278 | red = 0; // flash blue light |
aismail1997 | 0:8af0a4200bd0 | 279 | green = 0; |
aismail1997 | 0:8af0a4200bd0 | 280 | blue = 200; |
aismail1997 | 0:8af0a4200bd0 | 281 | RGB_LED( red, green, blue); |
aismail1997 | 0:8af0a4200bd0 | 282 | wait(0.5); |
aismail1997 | 0:8af0a4200bd0 | 283 | |
aismail1997 | 0:8af0a4200bd0 | 284 | RGB_LED(0,0,0); |
aismail1997 | 0:8af0a4200bd0 | 285 | wait(0.5); |
aismail1997 | 0:8af0a4200bd0 | 286 | |
aismail1997 | 0:8af0a4200bd0 | 287 | light = 1; |
aismail1997 | 0:8af0a4200bd0 | 288 | red = 200; // flash white light |
aismail1997 | 0:8af0a4200bd0 | 289 | green = 200; |
aismail1997 | 0:8af0a4200bd0 | 290 | blue = 200; |
aismail1997 | 0:8af0a4200bd0 | 291 | RGB_LED( red, green, blue); |
aismail1997 | 0:8af0a4200bd0 | 292 | wait(0.5); |
aismail1997 | 0:8af0a4200bd0 | 293 | |
aismail1997 | 0:8af0a4200bd0 | 294 | RGB_LED(0,0,0); |
aismail1997 | 0:8af0a4200bd0 | 295 | } |
aismail1997 | 0:8af0a4200bd0 | 296 | Thread::wait(500); |
aismail1997 | 0:8af0a4200bd0 | 297 | } |
aismail1997 | 0:8af0a4200bd0 | 298 | |
aismail1997 | 0:8af0a4200bd0 | 299 | |
aismail1997 | 0:8af0a4200bd0 | 300 | |
aismail1997 | 0:8af0a4200bd0 | 301 | } |