Measure the width (time-wise) of an incoming pulse.

Dependencies:   dispBoB mbed PCA9635

Revision:
1:f04131cae8b8
Parent:
0:dd684fb95312
Child:
2:bb7e46464d17
--- a/counter.cpp	Mon Jul 11 13:41:08 2011 +0000
+++ b/counter.cpp	Mon Jul 11 13:57:07 2011 +0000
@@ -5,23 +5,22 @@
 InterruptIn trigger(p12);           //set up the trigger as an external interrupt
 Timer t;
 
-void up(){                       //function to call upon interrupt
-    t.start();
+void up(){                          //call this on rising edge
+    t.start();                      //start timer
 }
 
-void down(){
-    t.stop();
+void down(){                        //call this upon falling edge
+    t.stop();                       //stop timer
     db.locate(0);
     db.printf("%06d", t.read_ms());     //print counter info to dispBoB 
-    t.reset();
-    t.start();
+    t.reset();                      //reset timer
 }
 
 int main() {
     trigger.mode(PullUp);           //activate internal pull up (hardware specific)
-    db.init();
+    db.init();                      //again ALWAYS initialise dispBoB
     db.cls();                       //clear screen
-    trigger.rise(&up);           //attach count() to interrupt on rising edge of trigger
-    trigger.fall(&down);
+    trigger.rise(&up);              //attach up() to interrupt on rising edge of trigger
+    trigger.fall(&down);            //attach down() to interrupt on falling edge of trigger
     db.printf("%06d", t.read_ms()); //display an inital count "000000"
 }