Prius IPM controller

Dependencies:   mbed

Fork of analoghalls5_5 by N K

Revision:
27:846c08fb3697
Parent:
24:f1ff9c7256b5
Child:
28:af9d43bcb371
--- a/sensors/currentsensors.cpp	Tue Mar 10 17:51:38 2015 +0000
+++ b/sensors/currentsensors.cpp	Sat Mar 14 18:51:36 2015 +0000
@@ -10,10 +10,15 @@
 
 void AnalogCurrentSensor::Zero() {
     float mean = 0;
-    for(int i = 0; i < 1000; i++){
-        mean += (float) *_in;
+    float last = 0;
+    float count = 0;
+    while(count <= 1000){
+        if(*_in != last){
+            mean = 0.99f * mean + (1.0f - 0.99f)*(*_in);
+            count += 1.0f;
+        }
     }
-    _zero_level = mean / 1000;
+    _zero_level = mean;
 }
 
 float AnalogCurrentSensor::GetCurrent() {