From 41b5ec5e358e33f93237153c0dff2bba1b837e2f Mon Sep 17 00:00:00 2001 From: hugo LAMY Date: Thu, 6 Mar 2025 02:01:04 +0100 Subject: [PATCH] added test macro in readme --- README.md | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/README.md b/README.md index 2021fb6..0323bb8 100644 --- a/README.md +++ b/README.md @@ -79,3 +79,38 @@ avrdude: safemode: Fuses OK (E:00, H:00, L:00) avrdude done. Thank you. ``` + +## test macros + +#include +#include + +// // stringify +#define STRINGIFY_HELPER(x) #x +#define STRINGIFY(x) STRINGIFY_HELPER(x) + +#define CONCAT_HELPER(x, y) x ## y +#define CONCAT(x, y) CONCAT_HELPER(x, y) + +// get argument at nth position +#define ARG_1(v1, v2) v1 +#define ARG_2(v1, v2) v2 +#define GET_PORT(args) ARG_1 args +#define GET_BIT(args) ARG_2 args + +// actions on registers +#define SET(register, bit) register |= 1 << bit + +// actions on ports +#define MODE_OUTPUT(elem) SET(CONCAT(DDR, GET_PORT(elem)), GET_BIT(elem)) + +// elements +#define LED1 (B, 0) + +int main() +{ +MODE_OUTPUT(LED1); + + return 0; + +}