John Lowe
/
WebSockets2
Embedded WebSockets Experiment
RGBLed.c@0:6dee052a3fa4, 2011-07-26 (annotated)
- Committer:
- nandgate
- Date:
- Tue Jul 26 05:30:53 2011 +0000
- Revision:
- 0:6dee052a3fa4
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
nandgate | 0:6dee052a3fa4 | 1 | #include "RGBLed.h" |
nandgate | 0:6dee052a3fa4 | 2 | |
nandgate | 0:6dee052a3fa4 | 3 | RGBLed::RGBLed() : red(p23), green(p22), blue(p21) { |
nandgate | 0:6dee052a3fa4 | 4 | red.period(0.001); |
nandgate | 0:6dee052a3fa4 | 5 | green.period(0.001); |
nandgate | 0:6dee052a3fa4 | 6 | blue.period(0.001); |
nandgate | 0:6dee052a3fa4 | 7 | |
nandgate | 0:6dee052a3fa4 | 8 | setRgb(0.1, 0.1, 0.1); |
nandgate | 0:6dee052a3fa4 | 9 | } |
nandgate | 0:6dee052a3fa4 | 10 | |
nandgate | 0:6dee052a3fa4 | 11 | void RGBLed::setRgb(char *rgb) { |
nandgate | 0:6dee052a3fa4 | 12 | float r, g, b; |
nandgate | 0:6dee052a3fa4 | 13 | int value; |
nandgate | 0:6dee052a3fa4 | 14 | |
nandgate | 0:6dee052a3fa4 | 15 | value= parseHex(0, *rgb++); |
nandgate | 0:6dee052a3fa4 | 16 | value= parseHex(value, *rgb++); |
nandgate | 0:6dee052a3fa4 | 17 | r= value / 255.0f; |
nandgate | 0:6dee052a3fa4 | 18 | |
nandgate | 0:6dee052a3fa4 | 19 | value= parseHex(0, *rgb++); |
nandgate | 0:6dee052a3fa4 | 20 | value= parseHex(value, *rgb++); |
nandgate | 0:6dee052a3fa4 | 21 | g= value / 255.0f; |
nandgate | 0:6dee052a3fa4 | 22 | |
nandgate | 0:6dee052a3fa4 | 23 | value= parseHex(0, *rgb++); |
nandgate | 0:6dee052a3fa4 | 24 | value= parseHex(value, *rgb++); |
nandgate | 0:6dee052a3fa4 | 25 | b= value / 255.0f; |
nandgate | 0:6dee052a3fa4 | 26 | |
nandgate | 0:6dee052a3fa4 | 27 | setRgb(r, g, b); |
nandgate | 0:6dee052a3fa4 | 28 | } |
nandgate | 0:6dee052a3fa4 | 29 | |
nandgate | 0:6dee052a3fa4 | 30 | void RGBLed::setRgb(float r, float g, float b) { |
nandgate | 0:6dee052a3fa4 | 31 | red= 1.0 - r; |
nandgate | 0:6dee052a3fa4 | 32 | green= 1.0 - g; |
nandgate | 0:6dee052a3fa4 | 33 | blue= 1.0 - b; |
nandgate | 0:6dee052a3fa4 | 34 | |
nandgate | 0:6dee052a3fa4 | 35 | //printf("red:%0.3f green:%0.3f blue%0.3f\n", r, g, b); |
nandgate | 0:6dee052a3fa4 | 36 | } |
nandgate | 0:6dee052a3fa4 | 37 | |
nandgate | 0:6dee052a3fa4 | 38 | int RGBLed::parseHex(int value, char hex) { |
nandgate | 0:6dee052a3fa4 | 39 | switch (hex) { |
nandgate | 0:6dee052a3fa4 | 40 | case '0': |
nandgate | 0:6dee052a3fa4 | 41 | return value<<4; |
nandgate | 0:6dee052a3fa4 | 42 | case '1': |
nandgate | 0:6dee052a3fa4 | 43 | return value<<4 | 1; |
nandgate | 0:6dee052a3fa4 | 44 | case '2': |
nandgate | 0:6dee052a3fa4 | 45 | return value<<4 | 2; |
nandgate | 0:6dee052a3fa4 | 46 | case '3': |
nandgate | 0:6dee052a3fa4 | 47 | return value<<4 | 3; |
nandgate | 0:6dee052a3fa4 | 48 | case '4': |
nandgate | 0:6dee052a3fa4 | 49 | return value<<4 | 4; |
nandgate | 0:6dee052a3fa4 | 50 | case '5': |
nandgate | 0:6dee052a3fa4 | 51 | return value<<4 | 5; |
nandgate | 0:6dee052a3fa4 | 52 | case '6': |
nandgate | 0:6dee052a3fa4 | 53 | return value<<4 | 6; |
nandgate | 0:6dee052a3fa4 | 54 | case '7': |
nandgate | 0:6dee052a3fa4 | 55 | return value<<4 | 7; |
nandgate | 0:6dee052a3fa4 | 56 | case '8': |
nandgate | 0:6dee052a3fa4 | 57 | return value<<4 | 8; |
nandgate | 0:6dee052a3fa4 | 58 | case '9': |
nandgate | 0:6dee052a3fa4 | 59 | return value<<4 | 9; |
nandgate | 0:6dee052a3fa4 | 60 | case 'A': |
nandgate | 0:6dee052a3fa4 | 61 | case 'a': |
nandgate | 0:6dee052a3fa4 | 62 | return value<<4 | 10; |
nandgate | 0:6dee052a3fa4 | 63 | case 'B': |
nandgate | 0:6dee052a3fa4 | 64 | case 'b': |
nandgate | 0:6dee052a3fa4 | 65 | return value<<4 | 11; |
nandgate | 0:6dee052a3fa4 | 66 | case 'C': |
nandgate | 0:6dee052a3fa4 | 67 | case 'c': |
nandgate | 0:6dee052a3fa4 | 68 | return value<<4 | 12; |
nandgate | 0:6dee052a3fa4 | 69 | case 'D': |
nandgate | 0:6dee052a3fa4 | 70 | case 'd': |
nandgate | 0:6dee052a3fa4 | 71 | return value<<4 | 13; |
nandgate | 0:6dee052a3fa4 | 72 | case 'E': |
nandgate | 0:6dee052a3fa4 | 73 | case 'e': |
nandgate | 0:6dee052a3fa4 | 74 | return value<<4 | 14; |
nandgate | 0:6dee052a3fa4 | 75 | case 'F': |
nandgate | 0:6dee052a3fa4 | 76 | case 'f': |
nandgate | 0:6dee052a3fa4 | 77 | return value<<4 | 15; |
nandgate | 0:6dee052a3fa4 | 78 | default: |
nandgate | 0:6dee052a3fa4 | 79 | return value; |
nandgate | 0:6dee052a3fa4 | 80 | } |
nandgate | 0:6dee052a3fa4 | 81 | } |