mirror of
https://github.com/Klipper3d/klipper.git
synced 2025-07-13 09:48:00 -06:00
command: Support evaluating C expressions in DECL_CONSTANT()
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
This commit is contained in:
parent
b28e95ca1a
commit
7d73a35805
3 changed files with 41 additions and 15 deletions
13
src/ctr.h
13
src/ctr.h
|
@ -14,4 +14,17 @@
|
|||
static char __PASTE(_DECLS_, __LINE__)[] __attribute__((used)) \
|
||||
__section(".compile_time_request") = (REQUEST)
|
||||
|
||||
#define CTR_INT(V, S) ((((uint32_t)(V) >> S) & 0x3f) + 48)
|
||||
|
||||
// Declare a compile time request with an integer expression
|
||||
#define DECL_CTR_INT(REQUEST, VALUE) \
|
||||
static struct { char _r[sizeof(REQUEST)]; char _v[8]; } \
|
||||
__PASTE(_DECLI_, __LINE__) __attribute__((used)) \
|
||||
__section(".compile_time_request") = { \
|
||||
REQUEST " ", { \
|
||||
(VALUE) < 0 ? '-' : '+', \
|
||||
CTR_INT((VALUE),0), CTR_INT((VALUE),6), \
|
||||
CTR_INT((VALUE),12), CTR_INT((VALUE),18), \
|
||||
CTR_INT((VALUE),24), CTR_INT((VALUE),30), 0 } }
|
||||
|
||||
#endif // ctr.h
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue