4180 lab 5
Dependencies: mbed 4DGL-uLCD-SE RPCInterface
main.cpp@2:4845e2dae429, 2020-02-19 (annotated)
- 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?
User | Revision | Line number | New 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 | } |