Binary counter. Very simple first program in C++ ever....

Dependencies:   mbed

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?

UserRevisionLine numberNew 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