Willem Braat
/
Bin_counter
Binary counter. Very simple first program in C++ ever....
main.cpp@1:0e8b02197fbd, 2011-10-14 (annotated)
- Committer:
- WillemBraat
- Date:
- Fri Oct 14 09:18:58 2011 +0000
- Revision:
- 1:0e8b02197fbd
- Parent:
- 0:ccedc98f7b64
Some additions and rewrite with procedures.
Extremely usefull and fun!
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
WillemBraat | 0:ccedc98f7b64 | 1 | //Binary Counter |
WillemBraat | 0:ccedc98f7b64 | 2 | #include "mbed.h" |
WillemBraat | 0:ccedc98f7b64 | 3 | |
WillemBraat | 0:ccedc98f7b64 | 4 | DigitalOut myled1(LED1); |
WillemBraat | 0:ccedc98f7b64 | 5 | DigitalOut myled2(LED2); |
WillemBraat | 0:ccedc98f7b64 | 6 | DigitalOut myled3(LED3); |
WillemBraat | 0:ccedc98f7b64 | 7 | DigitalOut myled4(LED4); |
WillemBraat | 0:ccedc98f7b64 | 8 | |
WillemBraat | 1:0e8b02197fbd | 9 | DigitalIn enable(p5); //use pin5 as count enable |
WillemBraat | 1:0e8b02197fbd | 10 | DigitalIn reset(p6); //use pin6 as reset |
WillemBraat | 1:0e8b02197fbd | 11 | |
WillemBraat | 1:0e8b02197fbd | 12 | void LedFlash( int Flashes, float delay ) { |
WillemBraat | 1:0e8b02197fbd | 13 | while( Flashes > 0 ) { |
WillemBraat | 1:0e8b02197fbd | 14 | myled1=0; myled2=0; myled3=0; myled4=0; wait(delay); |
WillemBraat | 1:0e8b02197fbd | 15 | myled1=1; myled2=1; myled3=1; myled4=1; wait(delay); |
WillemBraat | 1:0e8b02197fbd | 16 | Flashes -= 1 ; |
WillemBraat | 1:0e8b02197fbd | 17 | } |
WillemBraat | 1:0e8b02197fbd | 18 | } |
WillemBraat | 1:0e8b02197fbd | 19 | |
WillemBraat | 1:0e8b02197fbd | 20 | void WriteLed( int LedOn) { |
WillemBraat | 0:ccedc98f7b64 | 21 | char ONE = 1; |
WillemBraat | 0:ccedc98f7b64 | 22 | char TWO = 2; |
WillemBraat | 0:ccedc98f7b64 | 23 | char FOUR = 4; |
WillemBraat | 0:ccedc98f7b64 | 24 | char EIGHT = 8; |
WillemBraat | 1:0e8b02197fbd | 25 | if ( LedOn & ONE ) myled1 = 1 ; else myled1 = 0 ; |
WillemBraat | 1:0e8b02197fbd | 26 | if ( LedOn & TWO ) myled2 = 1 ; else myled2 = 0 ; |
WillemBraat | 1:0e8b02197fbd | 27 | if ( LedOn & FOUR ) myled3 = 1 ; else myled3 = 0 ; |
WillemBraat | 1:0e8b02197fbd | 28 | if ( LedOn & EIGHT ) myled4 = 1 ; else myled4 = 0 ; |
WillemBraat | 1:0e8b02197fbd | 29 | } |
WillemBraat | 1:0e8b02197fbd | 30 | |
WillemBraat | 1:0e8b02197fbd | 31 | int main() { |
WillemBraat | 1:0e8b02197fbd | 32 | char LedOn = 0; |
WillemBraat | 1:0e8b02197fbd | 33 | char MaxCount = 15; |
WillemBraat | 1:0e8b02197fbd | 34 | LedFlash( 10, 0.1 ); |
WillemBraat | 1:0e8b02197fbd | 35 | |
WillemBraat | 0:ccedc98f7b64 | 36 | while(1) { |
WillemBraat | 0:ccedc98f7b64 | 37 | wait(0.5); |
WillemBraat | 1:0e8b02197fbd | 38 | WriteLed( LedOn ); |
WillemBraat | 1:0e8b02197fbd | 39 | wait(0.5); |
WillemBraat | 1:0e8b02197fbd | 40 | if ( enable ) { |
WillemBraat | 1:0e8b02197fbd | 41 | LedOn += 1; |
WillemBraat | 1:0e8b02197fbd | 42 | } |
WillemBraat | 1:0e8b02197fbd | 43 | if ( reset ) { |
WillemBraat | 1:0e8b02197fbd | 44 | LedOn = 0; |
WillemBraat | 1:0e8b02197fbd | 45 | } |
WillemBraat | 1:0e8b02197fbd | 46 | if ( LedOn > MaxCount ) { |
WillemBraat | 1:0e8b02197fbd | 47 | LedFlash( 3, 0.2 ); |
WillemBraat | 1:0e8b02197fbd | 48 | LedOn = 0 ; |
WillemBraat | 1:0e8b02197fbd | 49 | } |
WillemBraat | 0:ccedc98f7b64 | 50 | } |
WillemBraat | 0:ccedc98f7b64 | 51 | } |
WillemBraat | 0:ccedc98f7b64 | 52 | |
WillemBraat | 0:ccedc98f7b64 | 53 | |
WillemBraat | 1:0e8b02197fbd | 54 |