Bayley Wang
/
priustroller
Prius IPM controller
Fork of analoghalls5_5 by
Diff: sensors/currentsensors.cpp
- 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() {