4180 lab 5

Dependencies:   mbed 4DGL-uLCD-SE RPCInterface

Committer:
emilywilson
Date:
Wed Feb 19 18:48:09 2020 +0000
Revision:
2:4845e2dae429
Parent:
0:bdbd3d6fc5d5
Child:
3:94d9434576af
led rtos

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 0:bdbd3d6fc5d5 1 #include "mbed.h"
emilywilson 2:4845e2dae429 2 #include "rtos.h"
emilywilson 2:4845e2dae429 3 //#include "part2.h"
emilywilson 2:4845e2dae429 4 //#include "part3.h"
emilywilson 2:4845e2dae429 5 #include "part4_led.h"
emilywilson 2:4845e2dae429 6 //#include "lidar_theremin.h"
emilywilson 2:4845e2dae429 7
emilywilson 2:4845e2dae429 8 Serial pc(USBTX, USBRX);
emilywilson 2:4845e2dae429 9 RawSerial dev(p13,p14);
emilywilson 2:4845e2dae429 10
emilywilson 2:4845e2dae429 11 DigitalOut myled1(LED1);
emilywilson 2:4845e2dae429 12 RGBLed led = RGBLed(p21, p22, p23);
emilywilson 2:4845e2dae429 13 Color colors[] = { _red, _pink, _orange, _yellow };
emilywilson 2:4845e2dae429 14
emilywilson 2:4845e2dae429 15 Thread led_thread;
emilywilson 2:4845e2dae429 16
emilywilson 2:4845e2dae429 17 void changeColor(char c) {
emilywilson 2:4845e2dae429 18 if (c == 'r') {
emilywilson 2:4845e2dae429 19 colors[0] = _red;
emilywilson 2:4845e2dae429 20 colors[1] = _pink;
emilywilson 2:4845e2dae429 21 colors[2] = _orange;
emilywilson 2:4845e2dae429 22 colors[3] = _yellow;
emilywilson 2:4845e2dae429 23 } else if (c == 'b') {
emilywilson 2:4845e2dae429 24 colors[0] = _teal;
emilywilson 2:4845e2dae429 25 colors[1] = _light_blue;
emilywilson 2:4845e2dae429 26 colors[2] = _blue;
emilywilson 2:4845e2dae429 27 colors[3] = _purple;
emilywilson 2:4845e2dae429 28 } else if (c == 'g') {
emilywilson 2:4845e2dae429 29 colors[0] = _yellow;
emilywilson 2:4845e2dae429 30 colors[1] = _light_green;
emilywilson 2:4845e2dae429 31 colors[2] = _green;
emilywilson 2:4845e2dae429 32 colors[3] = _teal;
emilywilson 2:4845e2dae429 33 }
emilywilson 2:4845e2dae429 34 }
emilywilson 2:4845e2dae429 35
emilywilson 2:4845e2dae429 36 void led_handler() {
emilywilson 2:4845e2dae429 37 Color c = colors[0];
emilywilson 2:4845e2dae429 38 int i = 0;
emilywilson 2:4845e2dae429 39 while (1) {
emilywilson 2:4845e2dae429 40 led.write(c.red, c.green, c.blue);
emilywilson 2:4845e2dae429 41 i = (i + 1) % 4;
emilywilson 2:4845e2dae429 42 c = colors[i];
emilywilson 2:4845e2dae429 43
emilywilson 2:4845e2dae429 44 Thread::wait(500);
emilywilson 2:4845e2dae429 45 }
emilywilson 2:4845e2dae429 46 }
emilywilson 2:4845e2dae429 47
mbed_official 0:bdbd3d6fc5d5 48 int main() {
emilywilson 2:4845e2dae429 49 // run_part2();
emilywilson 2:4845e2dae429 50 // run_part2_EC();
emilywilson 2:4845e2dae429 51 // run_lidar_theremin();
mbed_official 0:bdbd3d6fc5d5 52
emilywilson 2:4845e2dae429 53 // run_part3();
emilywilson 2:4845e2dae429 54
emilywilson 2:4845e2dae429 55 led_thread.start(led_handler);
emilywilson 2:4845e2dae429 56
emilywilson 2:4845e2dae429 57 while (1) {
emilywilson 2:4845e2dae429 58 myled1 = !myled1;
emilywilson 2:4845e2dae429 59
emilywilson 2:4845e2dae429 60 if (dev.readable()) {
emilywilson 2:4845e2dae429 61 // changeColor(dev.getc());
emilywilson 2:4845e2dae429 62 pc.putc(dev.getc());
emilywilson 2:4845e2dae429 63 }
emilywilson 2:4845e2dae429 64
emilywilson 2:4845e2dae429 65 Thread::wait(500);
mbed_official 0:bdbd3d6fc5d5 66 }
emilywilson 2:4845e2dae429 67 }