Ben Laskowski
/
Larsen2
A second version of the Larsen scanner, this time using the mbed's PwmOut library.
Embed:
(wiki syntax)
Show/hide line numbers
main.cpp
00001 #include "mbed.h" 00002 00003 PwmOut onb_led1(LED1); 00004 PwmOut onb_led2(LED2); 00005 PwmOut onb_led3(LED3); 00006 PwmOut onb_led4(LED4); 00007 00008 #define led_fade 0.10 //The multiplier for one time step of fade 00009 00010 int main(void) { 00011 //A flag to indicate which direction we should rotate 00012 bool flag = 0; 00013 //the states of the outputs 00014 char outstates = 1; 00015 00016 onb_led1.period_ms(5); 00017 onb_led2.period_ms(5); 00018 onb_led3.period_ms(5); 00019 onb_led4.period_ms(5); 00020 00021 //Infinite loop 00022 while(1) { 00023 wait(0.25); 00024 if (!flag) { 00025 outstates *= 2; 00026 if ((outstates>>3)&&1) flag=1; 00027 } else { 00028 outstates /=2; 00029 if (outstates==1) flag=0; 00030 } 00031 00032 switch(outstates){ 00033 case(1):{ 00034 onb_led1=1.0f; 00035 onb_led2=led_fade*(onb_led2); 00036 onb_led3=led_fade*(onb_led3); 00037 onb_led4=led_fade*(onb_led4); 00038 break; 00039 } 00040 case(2):{ 00041 onb_led1=led_fade*(onb_led1); 00042 onb_led2=1.0f; 00043 onb_led3=led_fade*(onb_led3); 00044 onb_led4=led_fade*(onb_led4); 00045 break; 00046 } 00047 case(4):{ 00048 onb_led1=led_fade*(onb_led1); 00049 onb_led2=led_fade*(onb_led2); 00050 onb_led3=1.0f; 00051 onb_led4=led_fade*(onb_led4); 00052 break; 00053 } 00054 case(8):{ 00055 onb_led1=led_fade*(onb_led1); 00056 onb_led2=led_fade*(onb_led2); 00057 onb_led3=led_fade*(onb_led3); 00058 onb_led4=1.0f; 00059 break; 00060 } 00061 } 00062 } 00063 } 00064 00065
Generated on Tue Jul 19 2022 02:05:48 by 1.7.2