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
00001 #include "mbed.h" 00002 00003 DigitalOut myled1(LED1); 00004 DigitalOut myled2(LED2); 00005 DigitalOut myled3(LED3); 00006 DigitalOut myled4(LED4); 00007 00008 DigitalOut * leds[4]; 00009 00010 class Dimmer { 00011 public: 00012 Dimmer() { 00013 counter = 0; 00014 level = 0; 00015 which = 0; 00016 } 00017 00018 void led_dim() { 00019 *(leds[which]) = ( counter <= level ) ? 1 : 0; 00020 00021 counter++; 00022 if( counter > 100 ) { 00023 counter = 0; 00024 } 00025 } 00026 00027 void setLevel(int l) { level = l; } 00028 void setWhich(int w) { which = w; } 00029 00030 private: 00031 int counter; 00032 int level; 00033 int which; 00034 }; 00035 00036 int main() { 00037 leds[0] = &myled1; 00038 leds[1] = &myled2; 00039 leds[2] = &myled3; 00040 leds[3] = &myled4; 00041 00042 int level = 0; 00043 int increment = 1; 00044 int which = 0; 00045 00046 Dimmer dimmer; 00047 Ticker timer; 00048 00049 timer.attach_us(&dimmer, &Dimmer::led_dim, 20); 00050 00051 while(1) { 00052 level += increment; 00053 00054 if( level >= 100 ) { 00055 which++; 00056 if( which > 3 ) { 00057 which = 3; 00058 increment = -1; 00059 } 00060 else { 00061 level = 0; 00062 } 00063 dimmer.setWhich( which ); 00064 } 00065 else if( level <= 0 ) { 00066 which--; 00067 if( which < 0 ) { 00068 which = 0; 00069 increment = 1; 00070 } 00071 else { 00072 level = 100; 00073 } 00074 dimmer.setWhich( which ); 00075 } 00076 00077 dimmer.setLevel(level); 00078 wait(0.01); 00079 } 00080 }
Generated on Mon Jul 25 2022 22:06:50 by
1.7.2