
If you want to use BLDC with FUTABA without going backward, use it
Dependencies: mbed Servo Pulse1
Map.cpp@0:b806d9855f21, 2019-12-20 (annotated)
- Committer:
- kyucheol
- Date:
- Fri Dec 20 07:32:15 2019 +0000
- Revision:
- 0:b806d9855f21
14
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
kyucheol | 0:b806d9855f21 | 1 | #include "Map.h" |
kyucheol | 0:b806d9855f21 | 2 | //#include "mbed.h" |
kyucheol | 0:b806d9855f21 | 3 | |
kyucheol | 0:b806d9855f21 | 4 | float map(float in, float inMin, float inMax, float outMin, float outMax) { |
kyucheol | 0:b806d9855f21 | 5 | // check it's within the range |
kyucheol | 0:b806d9855f21 | 6 | if (inMin<inMax) { |
kyucheol | 0:b806d9855f21 | 7 | if (in <= inMin) |
kyucheol | 0:b806d9855f21 | 8 | return outMin; |
kyucheol | 0:b806d9855f21 | 9 | if (in >= inMax) |
kyucheol | 0:b806d9855f21 | 10 | return outMax; |
kyucheol | 0:b806d9855f21 | 11 | } else { // cope with input range being backwards. |
kyucheol | 0:b806d9855f21 | 12 | if (in >= inMin) |
kyucheol | 0:b806d9855f21 | 13 | return outMin; |
kyucheol | 0:b806d9855f21 | 14 | if (in <= inMax) |
kyucheol | 0:b806d9855f21 | 15 | return outMax; |
kyucheol | 0:b806d9855f21 | 16 | } |
kyucheol | 0:b806d9855f21 | 17 | // calculate how far into the range we are |
kyucheol | 0:b806d9855f21 | 18 | float scale = (in-inMin)/(inMax-inMin); |
kyucheol | 0:b806d9855f21 | 19 | // calculate the output. |
kyucheol | 0:b806d9855f21 | 20 | return outMin + scale*(outMax-outMin); |
kyucheol | 0:b806d9855f21 | 21 | } |