Make muldiv() inline instead of a #define, too.
This commit is contained in:
parent
d49c0745d5
commit
e0959f7ce2
13
dda_maths.h
13
dda_maths.h
|
|
@ -6,13 +6,18 @@
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
|
||||||
// return rounded result of multiplicand * multiplier / divisor
|
// return rounded result of multiplicand * multiplier / divisor
|
||||||
#define muldiv(multiplicand, multiplier, divisor) \
|
// this version is with quotient and remainder precalculated elsewhere
|
||||||
muldivQR(multiplicand, multiplier / divisor, multiplier % divisor, divisor)
|
|
||||||
|
|
||||||
// same as before, but with quotient and remainder precalculated elsewhere
|
|
||||||
const int32_t muldivQR(int32_t multiplicand, uint32_t qn, uint32_t rn,
|
const int32_t muldivQR(int32_t multiplicand, uint32_t qn, uint32_t rn,
|
||||||
uint32_t divisor);
|
uint32_t divisor);
|
||||||
|
|
||||||
|
// return rounded result of multiplicand * multiplier / divisor
|
||||||
|
static int32_t muldiv(int32_t, uint32_t, uint32_t) __attribute__ ((always_inline));
|
||||||
|
inline int32_t muldiv(int32_t multiplicand, uint32_t multiplier,
|
||||||
|
uint32_t divisor) {
|
||||||
|
return muldivQR(multiplicand, multiplier / divisor,
|
||||||
|
multiplier % divisor, divisor);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
micrometer distance <=> motor step distance conversions
|
micrometer distance <=> motor step distance conversions
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue