Ben Laskowski
/
Larsen2
A second version of the Larsen scanner, this time using the mbed's PwmOut library.
main.cpp@0:2f868430865c, 2010-02-27 (annotated)
- Committer:
- benbitwonder
- Date:
- Sat Feb 27 20:11:32 2010 +0000
- Revision:
- 0:2f868430865c
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
benbitwonder | 0:2f868430865c | 1 | #include "mbed.h" |
benbitwonder | 0:2f868430865c | 2 | |
benbitwonder | 0:2f868430865c | 3 | PwmOut onb_led1(LED1); |
benbitwonder | 0:2f868430865c | 4 | PwmOut onb_led2(LED2); |
benbitwonder | 0:2f868430865c | 5 | PwmOut onb_led3(LED3); |
benbitwonder | 0:2f868430865c | 6 | PwmOut onb_led4(LED4); |
benbitwonder | 0:2f868430865c | 7 | |
benbitwonder | 0:2f868430865c | 8 | #define led_fade 0.10 //The multiplier for one time step of fade |
benbitwonder | 0:2f868430865c | 9 | |
benbitwonder | 0:2f868430865c | 10 | int main(void) { |
benbitwonder | 0:2f868430865c | 11 | //A flag to indicate which direction we should rotate |
benbitwonder | 0:2f868430865c | 12 | bool flag = 0; |
benbitwonder | 0:2f868430865c | 13 | //the states of the outputs |
benbitwonder | 0:2f868430865c | 14 | char outstates = 1; |
benbitwonder | 0:2f868430865c | 15 | |
benbitwonder | 0:2f868430865c | 16 | onb_led1.period_ms(5); |
benbitwonder | 0:2f868430865c | 17 | onb_led2.period_ms(5); |
benbitwonder | 0:2f868430865c | 18 | onb_led3.period_ms(5); |
benbitwonder | 0:2f868430865c | 19 | onb_led4.period_ms(5); |
benbitwonder | 0:2f868430865c | 20 | |
benbitwonder | 0:2f868430865c | 21 | //Infinite loop |
benbitwonder | 0:2f868430865c | 22 | while(1) { |
benbitwonder | 0:2f868430865c | 23 | wait(0.25); |
benbitwonder | 0:2f868430865c | 24 | if (!flag) { |
benbitwonder | 0:2f868430865c | 25 | outstates *= 2; |
benbitwonder | 0:2f868430865c | 26 | if ((outstates>>3)&&1) flag=1; |
benbitwonder | 0:2f868430865c | 27 | } else { |
benbitwonder | 0:2f868430865c | 28 | outstates /=2; |
benbitwonder | 0:2f868430865c | 29 | if (outstates==1) flag=0; |
benbitwonder | 0:2f868430865c | 30 | } |
benbitwonder | 0:2f868430865c | 31 | |
benbitwonder | 0:2f868430865c | 32 | switch(outstates){ |
benbitwonder | 0:2f868430865c | 33 | case(1):{ |
benbitwonder | 0:2f868430865c | 34 | onb_led1=1.0f; |
benbitwonder | 0:2f868430865c | 35 | onb_led2=led_fade*(onb_led2); |
benbitwonder | 0:2f868430865c | 36 | onb_led3=led_fade*(onb_led3); |
benbitwonder | 0:2f868430865c | 37 | onb_led4=led_fade*(onb_led4); |
benbitwonder | 0:2f868430865c | 38 | break; |
benbitwonder | 0:2f868430865c | 39 | } |
benbitwonder | 0:2f868430865c | 40 | case(2):{ |
benbitwonder | 0:2f868430865c | 41 | onb_led1=led_fade*(onb_led1); |
benbitwonder | 0:2f868430865c | 42 | onb_led2=1.0f; |
benbitwonder | 0:2f868430865c | 43 | onb_led3=led_fade*(onb_led3); |
benbitwonder | 0:2f868430865c | 44 | onb_led4=led_fade*(onb_led4); |
benbitwonder | 0:2f868430865c | 45 | break; |
benbitwonder | 0:2f868430865c | 46 | } |
benbitwonder | 0:2f868430865c | 47 | case(4):{ |
benbitwonder | 0:2f868430865c | 48 | onb_led1=led_fade*(onb_led1); |
benbitwonder | 0:2f868430865c | 49 | onb_led2=led_fade*(onb_led2); |
benbitwonder | 0:2f868430865c | 50 | onb_led3=1.0f; |
benbitwonder | 0:2f868430865c | 51 | onb_led4=led_fade*(onb_led4); |
benbitwonder | 0:2f868430865c | 52 | break; |
benbitwonder | 0:2f868430865c | 53 | } |
benbitwonder | 0:2f868430865c | 54 | case(8):{ |
benbitwonder | 0:2f868430865c | 55 | onb_led1=led_fade*(onb_led1); |
benbitwonder | 0:2f868430865c | 56 | onb_led2=led_fade*(onb_led2); |
benbitwonder | 0:2f868430865c | 57 | onb_led3=led_fade*(onb_led3); |
benbitwonder | 0:2f868430865c | 58 | onb_led4=1.0f; |
benbitwonder | 0:2f868430865c | 59 | break; |
benbitwonder | 0:2f868430865c | 60 | } |
benbitwonder | 0:2f868430865c | 61 | } |
benbitwonder | 0:2f868430865c | 62 | } |
benbitwonder | 0:2f868430865c | 63 | } |
benbitwonder | 0:2f868430865c | 64 | |
benbitwonder | 0:2f868430865c | 65 |