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@2:7cdadcca2c06, 2010-05-11 (annotated)
- Committer:
- leonous
- Date:
- Tue May 11 21:25:52 2010 +0000
- Revision:
- 2:7cdadcca2c06
- Parent:
- 1:6c8d46a9c3c9
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| leonous | 2:7cdadcca2c06 | 1 | #include "mbed.h" |
| leonous | 2:7cdadcca2c06 | 2 | |
| leonous | 2:7cdadcca2c06 | 3 | DigitalOut myled1(LED1); |
| leonous | 2:7cdadcca2c06 | 4 | DigitalOut myled2(LED2); |
| leonous | 2:7cdadcca2c06 | 5 | DigitalOut myled3(LED3); |
| leonous | 2:7cdadcca2c06 | 6 | DigitalOut myled4(LED4); |
| leonous | 2:7cdadcca2c06 | 7 | |
| leonous | 2:7cdadcca2c06 | 8 | void update_leds (int myleds) |
| leonous | 2:7cdadcca2c06 | 9 | { |
| leonous | 2:7cdadcca2c06 | 10 | // update the LEDs |
| leonous | 2:7cdadcca2c06 | 11 | myled1 = myleds & 1; |
| leonous | 2:7cdadcca2c06 | 12 | myled2 = (myleds & 2) >> 1; |
| leonous | 2:7cdadcca2c06 | 13 | myled3 = (myleds & 4) >> 2; |
| leonous | 2:7cdadcca2c06 | 14 | myled4 = (myleds & 8) >> 3; |
| leonous | 2:7cdadcca2c06 | 15 | } |
| leonous | 2:7cdadcca2c06 | 16 | |
| leonous | 2:7cdadcca2c06 | 17 | int main() |
| leonous | 2:7cdadcca2c06 | 18 | { |
| leonous | 2:7cdadcca2c06 | 19 | unsigned int count, count_up, speed_up = 0 ; |
| leonous | 2:7cdadcca2c06 | 20 | float count_interval = 0.1; |
| leonous | 2:7cdadcca2c06 | 21 | |
| leonous | 2:7cdadcca2c06 | 22 | count_up = ~ count_up; |
| leonous | 2:7cdadcca2c06 | 23 | |
| leonous | 2:7cdadcca2c06 | 24 | while(1) |
| leonous | 2:7cdadcca2c06 | 25 | { |
| leonous | 2:7cdadcca2c06 | 26 | // update LEDs with the current count value |
| leonous | 2:7cdadcca2c06 | 27 | update_leds (count); |
| leonous | 2:7cdadcca2c06 | 28 | |
| leonous | 2:7cdadcca2c06 | 29 | // count up or down depending on the value of count_up |
| leonous | 2:7cdadcca2c06 | 30 | if (count_up) |
| leonous | 2:7cdadcca2c06 | 31 | count++; |
| leonous | 2:7cdadcca2c06 | 32 | else |
| leonous | 2:7cdadcca2c06 | 33 | count--; |
| leonous | 2:7cdadcca2c06 | 34 | |
| leonous | 2:7cdadcca2c06 | 35 | // interval to next count |
| leonous | 2:7cdadcca2c06 | 36 | wait(count_interval); |
| leonous | 2:7cdadcca2c06 | 37 | |
| leonous | 2:7cdadcca2c06 | 38 | // update the count interval when the LED count gets to 16 |
| leonous | 2:7cdadcca2c06 | 39 | // decrement the interval every 16 lots of counts |
| leonous | 2:7cdadcca2c06 | 40 | if (speed_up && count % 16 == 0) |
| leonous | 2:7cdadcca2c06 | 41 | count_interval /= 2; |
| leonous | 2:7cdadcca2c06 | 42 | else if (count % 16 == 0) |
| leonous | 2:7cdadcca2c06 | 43 | count_interval *= 2; |
| leonous | 2:7cdadcca2c06 | 44 | |
| leonous | 2:7cdadcca2c06 | 45 | if (count % 256 == 0) |
| leonous | 2:7cdadcca2c06 | 46 | speed_up = ~ speed_up; |
| leonous | 2:7cdadcca2c06 | 47 | |
| leonous | 2:7cdadcca2c06 | 48 | // change the count direction every 32 lots of counts |
| leonous | 2:7cdadcca2c06 | 49 | if (count % 512 == 0) |
| leonous | 2:7cdadcca2c06 | 50 | count_up = ~ count_up; |
| leonous | 2:7cdadcca2c06 | 51 | |
| leonous | 2:7cdadcca2c06 | 52 | } |
| leonous | 2:7cdadcca2c06 | 53 | } |