syouichi imamori
/
MulticopterQuadX
Diff: Limiter/Limiter.cpp
- 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; +} +;