Dependencies:   IAP

Revision:
4:4060309b9cc0
Child:
6:a50e6d3924f1
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Limiter/Limiter.cpp	Tue Oct 14 08:15:03 2014 +0000
@@ -0,0 +1,26 @@
+#include "mbed.h"
+#include "Limiter.h"
+
+Limiter::Limiter(float LIMIT)
+{
+    limit = LIMIT;   
+    last= 0;
+    skip = false;
+}
+
+float Limiter::calc(float now)
+{
+    if ( !skip ) { 
+        skip = true; 
+        return last = now;
+    }
+    float differential = ( now - last );
+    if ( differential < limit && differential > -limit ) last = now;
+    if ( differential > limit ) last += limit * 0.05f;
+    else    {
+        if ( differential < -limit ) last -= limit * 0.05f;
+        else last = now;
+    }
+    return last;
+}
+;