a breathing led

Dependencies:   mbed

Committer:
yihui
Date:
Tue Jul 23 08:12:26 2013 +0000
Revision:
0:93063cf1bbc0
initial

Who changed what in which revision?

UserRevisionLine numberNew 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 }