Craig Evans
/
1620_App_Board_RGB_BusOut
RGB LED example using BusOut
Fork of 1620_App_Board_RGB_GPIO by
main.cpp@2:12e0dd6bced5, 2017-02-17 (annotated)
- Committer:
- eencae
- Date:
- Fri Feb 17 11:57:04 2017 +0000
- Revision:
- 2:12e0dd6bced5
- Parent:
- 1:11303019663d
Initial commit.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
eencae | 0:2f4ee2a22324 | 1 | /* ELEC1620 Application Board Example |
eencae | 0:2f4ee2a22324 | 2 | |
eencae | 1:11303019663d | 3 | RGB LED |
eencae | 0:2f4ee2a22324 | 4 | |
eencae | 0:2f4ee2a22324 | 5 | (c) Dr Craig A. Evans, University of Leeds, Feb 2017 |
eencae | 0:2f4ee2a22324 | 6 | |
eencae | 0:2f4ee2a22324 | 7 | */ |
eencae | 0:2f4ee2a22324 | 8 | |
eencae | 0:2f4ee2a22324 | 9 | #include "mbed.h" |
eencae | 0:2f4ee2a22324 | 10 | |
eencae | 2:12e0dd6bced5 | 11 | // R , G , B |
eencae | 2:12e0dd6bced5 | 12 | BusOut rgb_led(p24,p23,p22); |
eencae | 2:12e0dd6bced5 | 13 | // LSB MSB |
eencae | 1:11303019663d | 14 | |
eencae | 1:11303019663d | 15 | void init_leds(); |
eencae | 0:2f4ee2a22324 | 16 | |
eencae | 1:11303019663d | 17 | int main() |
eencae | 1:11303019663d | 18 | { |
eencae | 2:12e0dd6bced5 | 19 | // turn off LEDs |
eencae | 1:11303019663d | 20 | init_leds(); |
eencae | 1:11303019663d | 21 | |
eencae | 0:2f4ee2a22324 | 22 | while(1) { |
eencae | 1:11303019663d | 23 | |
eencae | 2:12e0dd6bced5 | 24 | // loop through 3-bit values and set RGB colour |
eencae | 2:12e0dd6bced5 | 25 | for(int val = 0; val < 8 ; val++) { |
eencae | 2:12e0dd6bced5 | 26 | rgb_led.write(val); |
eencae | 2:12e0dd6bced5 | 27 | // rgb_led = val; // syntax equivalent |
eencae | 2:12e0dd6bced5 | 28 | wait(0.2); |
eencae | 2:12e0dd6bced5 | 29 | } |
eencae | 1:11303019663d | 30 | |
eencae | 0:2f4ee2a22324 | 31 | } |
eencae | 0:2f4ee2a22324 | 32 | } |
eencae | 1:11303019663d | 33 | |
eencae | 1:11303019663d | 34 | void init_leds() |
eencae | 1:11303019663d | 35 | { |
eencae | 1:11303019663d | 36 | // LEDs are common anode (active-low) so writing a 1 will turn them off |
eencae | 2:12e0dd6bced5 | 37 | // We have a 3-bit bus for the RGB LED, so writing 7 (0b111) will turn |
eencae | 2:12e0dd6bced5 | 38 | // all 3 off |
eencae | 2:12e0dd6bced5 | 39 | rgb_led.write(7); |
eencae | 2:12e0dd6bced5 | 40 | |
eencae | 1:11303019663d | 41 | // this syntax is equivalent |
eencae | 2:12e0dd6bced5 | 42 | // rgb = 7; |
eencae | 2:12e0dd6bced5 | 43 | // rgb = 0b111; // can also use binary literals since C++ compiler upgrade |
eencae | 1:11303019663d | 44 | } |
eencae | 1:11303019663d | 45 |