Rauno U
/
Miisu
Six crescent shaped legs
SpeedEncoder.cpp@47:4f418a4b0051, 2016-06-21 (annotated)
- Committer:
- sim642
- Date:
- Tue Jun 21 14:43:44 2016 +0000
- Revision:
- 47:4f418a4b0051
- Parent:
- 37:8021b3ce241a
Byte based communication
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
sim642 | 6:9f9047ca4a89 | 1 | #include "SpeedEncoder.hpp" |
sim642 | 6:9f9047ca4a89 | 2 | |
sim642 | 12:8de7f5d56fe4 | 3 | SpeedEncoder::SpeedEncoder(EncoderData nData) : |
sim642 | 24:fb1827be6f7e | 4 | Encoder(nData), prevCount(0) |
sim642 | 6:9f9047ca4a89 | 5 | { |
sim642 | 6:9f9047ca4a89 | 6 | timer.start(); |
sim642 | 6:9f9047ca4a89 | 7 | } |
sim642 | 6:9f9047ca4a89 | 8 | |
sim642 | 37:8021b3ce241a | 9 | void SpeedEncoder::reset() |
sim642 | 37:8021b3ce241a | 10 | { |
sim642 | 37:8021b3ce241a | 11 | Encoder::reset(); |
sim642 | 37:8021b3ce241a | 12 | prevCount = 0; // TODO: calculate shift |
sim642 | 37:8021b3ce241a | 13 | } |
sim642 | 37:8021b3ce241a | 14 | |
sim642 | 14:4143ddddef1b | 15 | float SpeedEncoder::getCountSpeed() |
sim642 | 6:9f9047ca4a89 | 16 | { |
sim642 | 6:9f9047ca4a89 | 17 | long count = getCount(); |
sim642 | 6:9f9047ca4a89 | 18 | long dCount = count - prevCount; |
sim642 | 14:4143ddddef1b | 19 | |
sim642 | 14:4143ddddef1b | 20 | float speed = dCount / timer.read(); |
sim642 | 6:9f9047ca4a89 | 21 | timer.reset(); // timer keeps running |
sim642 | 6:9f9047ca4a89 | 22 | |
sim642 | 6:9f9047ca4a89 | 23 | prevCount = count; |
sim642 | 6:9f9047ca4a89 | 24 | return speed; |
sim642 | 14:4143ddddef1b | 25 | } |
sim642 | 14:4143ddddef1b | 26 | |
sim642 | 14:4143ddddef1b | 27 | float SpeedEncoder::getTurnSpeed() |
sim642 | 14:4143ddddef1b | 28 | { |
sim642 | 14:4143ddddef1b | 29 | return getCountSpeed() / data.turnCount; |
sim642 | 6:9f9047ca4a89 | 30 | } |