Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp@0:f7be784c668a, 2010-11-07 (annotated)
- Committer:
- fuenfundachtzig
- Date:
- Sun Nov 07 00:30:07 2010 +0000
- Revision:
- 0:f7be784c668a
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| fuenfundachtzig | 0:f7be784c668a | 1 | |
| fuenfundachtzig | 0:f7be784c668a | 2 | // show a "progress bar" using the four blue LED |
| fuenfundachtzig | 0:f7be784c668a | 3 | // |
| fuenfundachtzig | 0:f7be784c668a | 4 | // by (85) |
| fuenfundachtzig | 0:f7be784c668a | 5 | |
| fuenfundachtzig | 0:f7be784c668a | 6 | #include "mbed.h" |
| fuenfundachtzig | 0:f7be784c668a | 7 | |
| fuenfundachtzig | 0:f7be784c668a | 8 | PwmOut led1(LED1); |
| fuenfundachtzig | 0:f7be784c668a | 9 | PwmOut led2(LED2); |
| fuenfundachtzig | 0:f7be784c668a | 10 | PwmOut led3(LED3); |
| fuenfundachtzig | 0:f7be784c668a | 11 | PwmOut led4(LED4); |
| fuenfundachtzig | 0:f7be784c668a | 12 | |
| fuenfundachtzig | 0:f7be784c668a | 13 | float done = 0.0; |
| fuenfundachtzig | 0:f7be784c668a | 14 | int mode = 0; |
| fuenfundachtzig | 0:f7be784c668a | 15 | |
| fuenfundachtzig | 0:f7be784c668a | 16 | float zerolim(float a) { |
| fuenfundachtzig | 0:f7be784c668a | 17 | // returns a^2 for a >= 0 |
| fuenfundachtzig | 0:f7be784c668a | 18 | return a < 0. ? 0. : a*a; |
| fuenfundachtzig | 0:f7be784c668a | 19 | } |
| fuenfundachtzig | 0:f7be784c668a | 20 | |
| fuenfundachtzig | 0:f7be784c668a | 21 | int main() { |
| fuenfundachtzig | 0:f7be784c668a | 22 | while (1) { |
| fuenfundachtzig | 0:f7be784c668a | 23 | if (!(mode & 1)) { |
| fuenfundachtzig | 0:f7be784c668a | 24 | done += 0.01; |
| fuenfundachtzig | 0:f7be784c668a | 25 | if (done >= 1.1) |
| fuenfundachtzig | 0:f7be784c668a | 26 | ++mode; |
| fuenfundachtzig | 0:f7be784c668a | 27 | } |
| fuenfundachtzig | 0:f7be784c668a | 28 | if (mode & 1) { |
| fuenfundachtzig | 0:f7be784c668a | 29 | done -= 0.01; |
| fuenfundachtzig | 0:f7be784c668a | 30 | if (done <= -0.1) |
| fuenfundachtzig | 0:f7be784c668a | 31 | ++mode; |
| fuenfundachtzig | 0:f7be784c668a | 32 | } |
| fuenfundachtzig | 0:f7be784c668a | 33 | /* |
| fuenfundachtzig | 0:f7be784c668a | 34 | // interesting, but not intended |
| fuenfundachtzig | 0:f7be784c668a | 35 | led1 = (done*4)*(done*4); |
| fuenfundachtzig | 0:f7be784c668a | 36 | led2 = (done*4-1)*(done*4-1); |
| fuenfundachtzig | 0:f7be784c668a | 37 | led3 = (done*4-2)*(done*4-2); |
| fuenfundachtzig | 0:f7be784c668a | 38 | led4 = (done*4-3)*(done*4-3); |
| fuenfundachtzig | 0:f7be784c668a | 39 | */ |
| fuenfundachtzig | 0:f7be784c668a | 40 | /* |
| fuenfundachtzig | 0:f7be784c668a | 41 | // linear |
| fuenfundachtzig | 0:f7be784c668a | 42 | led1 = done*4; |
| fuenfundachtzig | 0:f7be784c668a | 43 | led2 = done*4-1; |
| fuenfundachtzig | 0:f7be784c668a | 44 | led3 = done*4-2; |
| fuenfundachtzig | 0:f7be784c668a | 45 | led4 = done*4-3; |
| fuenfundachtzig | 0:f7be784c668a | 46 | */ |
| fuenfundachtzig | 0:f7be784c668a | 47 | led1 = zerolim(done*4); |
| fuenfundachtzig | 0:f7be784c668a | 48 | led2 = zerolim(done*4-1); |
| fuenfundachtzig | 0:f7be784c668a | 49 | led3 = zerolim(done*4-2); |
| fuenfundachtzig | 0:f7be784c668a | 50 | led4 = zerolim(done*4-3); |
| fuenfundachtzig | 0:f7be784c668a | 51 | wait(0.01); |
| fuenfundachtzig | 0:f7be784c668a | 52 | } |
| fuenfundachtzig | 0:f7be784c668a | 53 | } |