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

Dependencies:   mbed

Files at this revision

API Documentation at this revision

Comitter:
WillemBraat
Date:
Fri Oct 14 09:18:58 2011 +0000
Parent:
0:ccedc98f7b64
Commit message:
Some additions and rewrite with procedures.
Extremely usefull and fun!

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
diff -r ccedc98f7b64 -r 0e8b02197fbd main.cpp
--- a/main.cpp	Thu Oct 13 13:26:29 2011 +0000
+++ b/main.cpp	Fri Oct 14 09:18:58 2011 +0000
@@ -6,22 +6,49 @@
 DigitalOut myled3(LED3);
 DigitalOut myled4(LED4);
 
-int main() {
-    char LedOn = 0;
-    
+DigitalIn enable(p5);       //use pin5 as count enable
+DigitalIn reset(p6);        //use pin6 as reset
+
+void LedFlash( int Flashes, float delay ) {
+    while( Flashes > 0 ) {           
+        myled1=0; myled2=0; myled3=0; myled4=0; wait(delay);
+        myled1=1; myled2=1; myled3=1; myled4=1; wait(delay);
+        Flashes -= 1 ;   
+    }
+}
+
+void WriteLed( int LedOn) {
     char ONE   = 1;
     char TWO   = 2;
     char FOUR  = 4;
     char EIGHT = 8;
-    
+    if ( LedOn & ONE )   myled1 = 1 ; else myled1 = 0 ;
+    if ( LedOn & TWO )   myled2 = 1 ; else myled2 = 0 ;
+    if ( LedOn & FOUR )  myled3 = 1 ; else myled3 = 0 ;
+    if ( LedOn & EIGHT ) myled4 = 1 ; else myled4 = 0 ;
+}
+
+int main() {
+    char LedOn = 0;
+    char MaxCount = 15;
+    LedFlash( 10, 0.1 ); 
+ 
     while(1) {
         wait(0.5); 
-        if ( LedOn & ONE)   myled1 = 1 ; else myled1 = 0 ;
-        if ( LedOn & TWO)   myled2 = 1 ; else myled2 = 0 ;
-        if ( LedOn & FOUR)  myled3 = 1 ; else myled3 = 0 ;
-        if ( LedOn & EIGHT) myled4 = 1 ; else myled4 = 0 ;
-        LedOn += 1;        
+        WriteLed( LedOn );
+        wait(0.5);
+        if ( enable ) {
+            LedOn += 1;        
+        }
+        if ( reset ) {
+            LedOn = 0;
+        }
+        if ( LedOn > MaxCount ) {
+            LedFlash( 3, 0.2 ); 
+            LedOn = 0 ;
+        }    
     }
 }
 
 
+