Files
stm32uav/misc.c
2022-09-27 20:01:14 +02:00

19 lines
418 B
C

/*
* Copyright 2022 Oleg Borodin <borodin@unix7.org>
*/
#include <stdbool.h>
double mapval(double imin, double imax, double omin, double omax, double in, bool inv) {
double odiap = (omax - omin);
double k = 1.0 / (imax - imin);
double out = 0.0;
if (inv) {
out = (omax - odiap/2.0) - in * k * odiap;
} else {
out = in * k * odiap + (odiap/2.0 + omin);
}
return out;
}