Yihui Xiong
/
breathing_led
a breathing led
main.cpp@0:93063cf1bbc0, 2013-07-23 (annotated)
- Committer:
- yihui
- Date:
- Tue Jul 23 08:12:26 2013 +0000
- Revision:
- 0:93063cf1bbc0
initial
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
yihui | 0:93063cf1bbc0 | 1 | #include "mbed.h" |
yihui | 0:93063cf1bbc0 | 2 | |
yihui | 0:93063cf1bbc0 | 3 | #define BREATHE_PERIOD 4500 // ms |
yihui | 0:93063cf1bbc0 | 4 | #define INHALE_PERIOD (BREATHE_PERIOD / 4) |
yihui | 0:93063cf1bbc0 | 5 | #define EXHALE_PERIOD (BREATHE_PERIOD / 2) |
yihui | 0:93063cf1bbc0 | 6 | #define HOLD_PERIOD (BREATHE_PERIOD / 8) |
yihui | 0:93063cf1bbc0 | 7 | |
yihui | 0:93063cf1bbc0 | 8 | |
yihui | 0:93063cf1bbc0 | 9 | BusOut leds(LED1, LED2, LED3, LED4); |
yihui | 0:93063cf1bbc0 | 10 | PwmOut led(P1_14); |
yihui | 0:93063cf1bbc0 | 11 | |
yihui | 0:93063cf1bbc0 | 12 | int main() { |
yihui | 0:93063cf1bbc0 | 13 | float brightness; |
yihui | 0:93063cf1bbc0 | 14 | |
yihui | 0:93063cf1bbc0 | 15 | while(1) { |
yihui | 0:93063cf1bbc0 | 16 | for (int i = 0; i <= 32; i++) { |
yihui | 0:93063cf1bbc0 | 17 | brightness = i * i / (float)(32 * 32); |
yihui | 0:93063cf1bbc0 | 18 | led = brightness; |
yihui | 0:93063cf1bbc0 | 19 | wait_ms(INHALE_PERIOD / 32); |
yihui | 0:93063cf1bbc0 | 20 | } |
yihui | 0:93063cf1bbc0 | 21 | |
yihui | 0:93063cf1bbc0 | 22 | wait_ms(HOLD_PERIOD); |
yihui | 0:93063cf1bbc0 | 23 | |
yihui | 0:93063cf1bbc0 | 24 | for (int i = 0; i <= 32; i++) { |
yihui | 0:93063cf1bbc0 | 25 | brightness = 1- (i * i / (float)(32 * 32)); |
yihui | 0:93063cf1bbc0 | 26 | led = brightness; |
yihui | 0:93063cf1bbc0 | 27 | wait_ms(EXHALE_PERIOD / 32); |
yihui | 0:93063cf1bbc0 | 28 | } |
yihui | 0:93063cf1bbc0 | 29 | |
yihui | 0:93063cf1bbc0 | 30 | wait_ms(HOLD_PERIOD); |
yihui | 0:93063cf1bbc0 | 31 | } |
yihui | 0:93063cf1bbc0 | 32 | } |