christian b
/
blinkmdriver
Simple driver for blinkm module
main.cpp@0:364e81107e71, 2010-09-21 (annotated)
- Committer:
- chris215
- Date:
- Tue Sep 21 06:54:02 2010 +0000
- Revision:
- 0:364e81107e71
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
chris215 | 0:364e81107e71 | 1 | #include "mbed.h" |
chris215 | 0:364e81107e71 | 2 | |
chris215 | 0:364e81107e71 | 3 | //prototypes |
chris215 | 0:364e81107e71 | 4 | void FadeToColor(char r,char g, char b); |
chris215 | 0:364e81107e71 | 5 | void FastColorChg(char r,char g, char b); |
chris215 | 0:364e81107e71 | 6 | void PlayScript(char s); |
chris215 | 0:364e81107e71 | 7 | void BlinkInit(void); |
chris215 | 0:364e81107e71 | 8 | //DEFINES |
chris215 | 0:364e81107e71 | 9 | #define BLINKADR 0x12 |
chris215 | 0:364e81107e71 | 10 | |
chris215 | 0:364e81107e71 | 11 | I2C blink(p9,p10); |
chris215 | 0:364e81107e71 | 12 | |
chris215 | 0:364e81107e71 | 13 | int main() { |
chris215 | 0:364e81107e71 | 14 | BlinkInit(); |
chris215 | 0:364e81107e71 | 15 | FadeToColor(0x00,0x00,0x00); |
chris215 | 0:364e81107e71 | 16 | wait(2); |
chris215 | 0:364e81107e71 | 17 | FadeToColor(0xff,0xff,0xff); |
chris215 | 0:364e81107e71 | 18 | wait(2); |
chris215 | 0:364e81107e71 | 19 | while(1) { |
chris215 | 0:364e81107e71 | 20 | PlayScript(12); //virtual candle |
chris215 | 0:364e81107e71 | 21 | wait(60); // 10 sec script play |
chris215 | 0:364e81107e71 | 22 | PlayScript(13); //water reflexion |
chris215 | 0:364e81107e71 | 23 | wait(60); // 10 sec script play |
chris215 | 0:364e81107e71 | 24 | PlayScript(11); //moonlight |
chris215 | 0:364e81107e71 | 25 | wait(60); // 10 sec script play |
chris215 | 0:364e81107e71 | 26 | PlayScript(16); //thunderstorms |
chris215 | 0:364e81107e71 | 27 | wait(60); // 10 sec script play |
chris215 | 0:364e81107e71 | 28 | } |
chris215 | 0:364e81107e71 | 29 | } |
chris215 | 0:364e81107e71 | 30 | void BlinkInit(void) |
chris215 | 0:364e81107e71 | 31 | { |
chris215 | 0:364e81107e71 | 32 | char data[1] = {'o'}; |
chris215 | 0:364e81107e71 | 33 | blink.frequency(400000); |
chris215 | 0:364e81107e71 | 34 | blink.write(0x00, data, 1); // will stop it at whatever address |
chris215 | 0:364e81107e71 | 35 | } |
chris215 | 0:364e81107e71 | 36 | void FadeToColor(char r,char g, char b) |
chris215 | 0:364e81107e71 | 37 | { |
chris215 | 0:364e81107e71 | 38 | char data[4] = {'c',r,g,b}; |
chris215 | 0:364e81107e71 | 39 | blink.write(BLINKADR, data, 4); |
chris215 | 0:364e81107e71 | 40 | } |
chris215 | 0:364e81107e71 | 41 | void FastColorChg(char r,char g, char b) |
chris215 | 0:364e81107e71 | 42 | { |
chris215 | 0:364e81107e71 | 43 | char data[4] = {'n',r,g,b}; |
chris215 | 0:364e81107e71 | 44 | blink.write(BLINKADR, data, 4); |
chris215 | 0:364e81107e71 | 45 | } |
chris215 | 0:364e81107e71 | 46 | void PlayScript(char s) |
chris215 | 0:364e81107e71 | 47 | { |
chris215 | 0:364e81107e71 | 48 | FadeToColor(0x00,0x00,0x00); // fade to black |
chris215 | 0:364e81107e71 | 49 | wait(0.25); //100 ms to make sure fade is complete |
chris215 | 0:364e81107e71 | 50 | if(s < 19) //only 19 scripts onboard |
chris215 | 0:364e81107e71 | 51 | { |
chris215 | 0:364e81107e71 | 52 | char data[4] = {'p',s,0,0}; //play script from start indefinetly |
chris215 | 0:364e81107e71 | 53 | blink.write(BLINKADR, data, 4); |
chris215 | 0:364e81107e71 | 54 | } |
chris215 | 0:364e81107e71 | 55 | } |
chris215 | 0:364e81107e71 | 56 |