Measurement of low frequencys based on timing between pulses

Dependents:   Energy_Meter_S0_Example

Revision:
2:fc21262db17a
Parent:
1:6eb686d7d16a
--- a/Pulses.cpp	Thu Nov 08 07:25:41 2012 +0000
+++ b/Pulses.cpp	Thu Nov 08 12:01:02 2012 +0000
@@ -6,6 +6,7 @@
     _timer.reset();
     _timer.start();
     
+    _lastTimer = 0;
     _ActTime = 0;
     _MinTime = 0;
     _MaxTime = 0;
@@ -121,7 +122,11 @@
 //////////////////////////////////////////////////////////////////////////////////
 
 void Pulses::callback_in() {
-    unsigned int diff = _timer.readDiff_us();
+    unsigned int act = _timer.read_us();
+    unsigned int diff;
+        
+    diff = act - _lastTimer;   // Note: overflow is handled correctly
+    _lastTimer = act;
 
     _Counter++;
     _TimeoutCount = 0;