Ben Laskowski
/
Larsen
A simple Larsen scanner using the onboard LEDs.... because there aren't enough of these already.
main.cpp@0:1caccdf9730e, 2010-02-27 (annotated)
- Committer:
- benbitwonder
- Date:
- Sat Feb 27 18:47:50 2010 +0000
- Revision:
- 0:1caccdf9730e
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
benbitwonder | 0:1caccdf9730e | 1 | #include "mbed.h" |
benbitwonder | 0:1caccdf9730e | 2 | |
benbitwonder | 0:1caccdf9730e | 3 | BusOut ledarray(LED1, LED2, LED3, LED4); |
benbitwonder | 0:1caccdf9730e | 4 | |
benbitwonder | 0:1caccdf9730e | 5 | int main(void) { |
benbitwonder | 0:1caccdf9730e | 6 | //A flag to indicate which direction we should rotate |
benbitwonder | 0:1caccdf9730e | 7 | bool flag = 0; |
benbitwonder | 0:1caccdf9730e | 8 | //the states of the outputs |
benbitwonder | 0:1caccdf9730e | 9 | char outstates = 1; |
benbitwonder | 0:1caccdf9730e | 10 | |
benbitwonder | 0:1caccdf9730e | 11 | //Place the outputs in a known state |
benbitwonder | 0:1caccdf9730e | 12 | ledarray=1; |
benbitwonder | 0:1caccdf9730e | 13 | |
benbitwonder | 0:1caccdf9730e | 14 | //Infinite loop |
benbitwonder | 0:1caccdf9730e | 15 | while(1) { |
benbitwonder | 0:1caccdf9730e | 16 | wait(0.25); |
benbitwonder | 0:1caccdf9730e | 17 | if (!flag) { |
benbitwonder | 0:1caccdf9730e | 18 | outstates *= 2; |
benbitwonder | 0:1caccdf9730e | 19 | if ((outstates>>3)&&1) flag=1; |
benbitwonder | 0:1caccdf9730e | 20 | } else { |
benbitwonder | 0:1caccdf9730e | 21 | outstates /=2; |
benbitwonder | 0:1caccdf9730e | 22 | if (outstates==1) flag=0; |
benbitwonder | 0:1caccdf9730e | 23 | } |
benbitwonder | 0:1caccdf9730e | 24 | ledarray=outstates; |
benbitwonder | 0:1caccdf9730e | 25 | } |
benbitwonder | 0:1caccdf9730e | 26 | } |
benbitwonder | 0:1caccdf9730e | 27 | |
benbitwonder | 0:1caccdf9730e | 28 |