Assignment 3 and 4. Both in commits.

Dependencies:   MODSERIAL mbed

Committer:
vsluiter
Date:
Wed Sep 02 12:57:47 2015 +0000
Revision:
1:958fbf7ad850
Parent:
0:86aaef96170e
Child:
2:ae67659d1fca
Assignment 4

Who changed what in which revision?

UserRevisionLine numberNew contents of line
vsluiter 0:86aaef96170e 1 #include "mbed.h"
vsluiter 0:86aaef96170e 2 #include "MODSERIAL.h"
vsluiter 0:86aaef96170e 3
vsluiter 1:958fbf7ad850 4 DigitalOut r_led(LED_RED);
vsluiter 1:958fbf7ad850 5 DigitalOut g_led(LED_GREEN);
vsluiter 1:958fbf7ad850 6 DigitalOut b_led(LED_BLUE);
vsluiter 1:958fbf7ad850 7
vsluiter 0:86aaef96170e 8 DigitalIn button(PTA4);
vsluiter 0:86aaef96170e 9 MODSERIAL pc(USBTX, USBRX);
vsluiter 0:86aaef96170e 10
vsluiter 0:86aaef96170e 11 const int baudrate = 115200;
vsluiter 1:958fbf7ad850 12 //const int ms_wait = 100;
vsluiter 0:86aaef96170e 13
vsluiter 1:958fbf7ad850 14 const float period_led = 0.2;
vsluiter 0:86aaef96170e 15
vsluiter 0:86aaef96170e 16 const int led_on = 0;
vsluiter 0:86aaef96170e 17 const int led_off = 1;
vsluiter 0:86aaef96170e 18
vsluiter 0:86aaef96170e 19
vsluiter 1:958fbf7ad850 20 bool blink_red = false;
vsluiter 1:958fbf7ad850 21 bool blink_green = false;
vsluiter 1:958fbf7ad850 22 bool blink_blue = false;
vsluiter 0:86aaef96170e 23
vsluiter 1:958fbf7ad850 24 void flip1led(DigitalOut& led)
vsluiter 0:86aaef96170e 25 {
vsluiter 1:958fbf7ad850 26 led = !led;
vsluiter 1:958fbf7ad850 27 }
vsluiter 1:958fbf7ad850 28
vsluiter 1:958fbf7ad850 29 void blink3Leds()
vsluiter 1:958fbf7ad850 30 {
vsluiter 1:958fbf7ad850 31 if(blink_red)
vsluiter 1:958fbf7ad850 32 flip1led(r_led);
vsluiter 1:958fbf7ad850 33 if(blink_green)
vsluiter 1:958fbf7ad850 34 flip1led(g_led);
vsluiter 1:958fbf7ad850 35 if(blink_blue)
vsluiter 1:958fbf7ad850 36 flip1led(b_led);
vsluiter 0:86aaef96170e 37 }
vsluiter 0:86aaef96170e 38
vsluiter 0:86aaef96170e 39 int main()
vsluiter 0:86aaef96170e 40 {
vsluiter 1:958fbf7ad850 41 Ticker ledtick;
vsluiter 1:958fbf7ad850 42 ledtick.attach(blink3Leds, period_led/2);
vsluiter 1:958fbf7ad850 43
vsluiter 1:958fbf7ad850 44 r_led.write(led_off);
vsluiter 1:958fbf7ad850 45 g_led.write(led_off);
vsluiter 1:958fbf7ad850 46 b_led.write(led_off);
vsluiter 0:86aaef96170e 47 pc.baud(baudrate);
vsluiter 0:86aaef96170e 48 pc.printf("Hello World!\n");
vsluiter 0:86aaef96170e 49
vsluiter 0:86aaef96170e 50 while (true) {
vsluiter 0:86aaef96170e 51 if(pc.readable()) //if character available. If expresseion is non-zero, it's true
vsluiter 0:86aaef96170e 52 {
vsluiter 1:958fbf7ad850 53 switch(pc.getc()) //read a character
vsluiter 1:958fbf7ad850 54 {
vsluiter 1:958fbf7ad850 55 case 'r':
vsluiter 1:958fbf7ad850 56 blink_red = true;
vsluiter 1:958fbf7ad850 57 blink_green = false;
vsluiter 1:958fbf7ad850 58 blink_blue = false;
vsluiter 1:958fbf7ad850 59 g_led.write(led_off);
vsluiter 1:958fbf7ad850 60 b_led.write(led_off);
vsluiter 1:958fbf7ad850 61 break;
vsluiter 1:958fbf7ad850 62 case 'g':
vsluiter 1:958fbf7ad850 63 blink_red = false;
vsluiter 1:958fbf7ad850 64 blink_green = true;
vsluiter 1:958fbf7ad850 65 blink_blue = false;
vsluiter 1:958fbf7ad850 66 r_led.write(led_off);
vsluiter 1:958fbf7ad850 67 b_led.write(led_off);
vsluiter 1:958fbf7ad850 68 break;
vsluiter 1:958fbf7ad850 69 case 'b':
vsluiter 1:958fbf7ad850 70 blink_red = false;
vsluiter 1:958fbf7ad850 71 blink_green = false;
vsluiter 1:958fbf7ad850 72 blink_blue = true;
vsluiter 1:958fbf7ad850 73 g_led.write(led_off);
vsluiter 1:958fbf7ad850 74 r_led.write(led_off);
vsluiter 1:958fbf7ad850 75 break;
vsluiter 1:958fbf7ad850 76 default:
vsluiter 1:958fbf7ad850 77 pc.printf("only r g b allowed.\n");
vsluiter 1:958fbf7ad850 78 }
vsluiter 0:86aaef96170e 79 }
vsluiter 0:86aaef96170e 80 }
vsluiter 0:86aaef96170e 81 }