Extra problem 2 for HW 1
main.cpp@0:a64f45869df3, 2015-02-18 (annotated)
- Committer:
- lzzcd001
- Date:
- Wed Feb 18 14:48:48 2015 +0000
- Revision:
- 0:a64f45869df3
Extra problem 2 for HW 1
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| lzzcd001 | 0:a64f45869df3 | 1 | #include "mbed.h" |
| lzzcd001 | 0:a64f45869df3 | 2 | |
| lzzcd001 | 0:a64f45869df3 | 3 | DigitalOut latch(p15); |
| lzzcd001 | 0:a64f45869df3 | 4 | DigitalOut enable(p16); |
| lzzcd001 | 0:a64f45869df3 | 5 | DigitalIn r(p5); |
| lzzcd001 | 0:a64f45869df3 | 6 | DigitalIn g(p6); |
| lzzcd001 | 0:a64f45869df3 | 7 | DigitalIn b(p7); |
| lzzcd001 | 0:a64f45869df3 | 8 | |
| lzzcd001 | 0:a64f45869df3 | 9 | SPI spi(p11, p12, p13); |
| lzzcd001 | 0:a64f45869df3 | 10 | |
| lzzcd001 | 0:a64f45869df3 | 11 | void RGB_LED(int red, int green, int blue) { |
| lzzcd001 | 0:a64f45869df3 | 12 | unsigned int low_color=0; |
| lzzcd001 | 0:a64f45869df3 | 13 | unsigned int high_color=0; |
| lzzcd001 | 0:a64f45869df3 | 14 | high_color=(blue<<4)|((red&0x3C0)>>6); |
| lzzcd001 | 0:a64f45869df3 | 15 | low_color=(((red&0x3F)<<10)|(green)); |
| lzzcd001 | 0:a64f45869df3 | 16 | spi.write(high_color); |
| lzzcd001 | 0:a64f45869df3 | 17 | spi.write(low_color); |
| lzzcd001 | 0:a64f45869df3 | 18 | latch=1; |
| lzzcd001 | 0:a64f45869df3 | 19 | latch=0; |
| lzzcd001 | 0:a64f45869df3 | 20 | } |
| lzzcd001 | 0:a64f45869df3 | 21 | |
| lzzcd001 | 0:a64f45869df3 | 22 | int main() { |
| lzzcd001 | 0:a64f45869df3 | 23 | int red=0; |
| lzzcd001 | 0:a64f45869df3 | 24 | int green=0; |
| lzzcd001 | 0:a64f45869df3 | 25 | int blue=0; |
| lzzcd001 | 0:a64f45869df3 | 26 | spi.format(16,0); |
| lzzcd001 | 0:a64f45869df3 | 27 | spi.frequency(500000); |
| lzzcd001 | 0:a64f45869df3 | 28 | enable=0; |
| lzzcd001 | 0:a64f45869df3 | 29 | latch=0; |
| lzzcd001 | 0:a64f45869df3 | 30 | wait(2); |
| lzzcd001 | 0:a64f45869df3 | 31 | while(1) { |
| lzzcd001 | 0:a64f45869df3 | 32 | if (r == 1){ |
| lzzcd001 | 0:a64f45869df3 | 33 | if (red < 255) red += 5; |
| lzzcd001 | 0:a64f45869df3 | 34 | } else { |
| lzzcd001 | 0:a64f45869df3 | 35 | if (red > 0) red -= 5; |
| lzzcd001 | 0:a64f45869df3 | 36 | } |
| lzzcd001 | 0:a64f45869df3 | 37 | if (b == 1){ |
| lzzcd001 | 0:a64f45869df3 | 38 | if (blue < 255) blue += 5; |
| lzzcd001 | 0:a64f45869df3 | 39 | } else { |
| lzzcd001 | 0:a64f45869df3 | 40 | if (blue > 0) blue -= 5; |
| lzzcd001 | 0:a64f45869df3 | 41 | } |
| lzzcd001 | 0:a64f45869df3 | 42 | if (g == 1){ |
| lzzcd001 | 0:a64f45869df3 | 43 | if (green < 255) green += 5; |
| lzzcd001 | 0:a64f45869df3 | 44 | } else { |
| lzzcd001 | 0:a64f45869df3 | 45 | if (green > 0) green -= 5; |
| lzzcd001 | 0:a64f45869df3 | 46 | } |
| lzzcd001 | 0:a64f45869df3 | 47 | RGB_LED(red, green, blue); |
| lzzcd001 | 0:a64f45869df3 | 48 | wait(0.5); |
| lzzcd001 | 0:a64f45869df3 | 49 | } |
| lzzcd001 | 0:a64f45869df3 | 50 | |
| lzzcd001 | 0:a64f45869df3 | 51 | } |