]> mj.ucw.cz Git - home-hw.git/blobdiff - lib/util.h
Power daemon: A new daemon for relaying power meter data to MQTT
[home-hw.git] / lib / util.h
index a84d09975475d03fe05a7bca1715aeb57b3c25b6..b37c527f603f9003373c97bd4f85d0f753f4ac70 100644 (file)
@@ -1,9 +1,17 @@
+/*
+ *     General Utility Library for STM32
+ *
+ *     (c) 2018--2019 Martin Mareš <mj@ucw.cz>
+ */
+
 #include <stdbool.h>
 #include <stddef.h>
 #include <stdint.h>
 
 #include "config.h"
 
+// Types
+
 typedef unsigned int uint;
 typedef uint8_t byte;
 typedef uint16_t u16;
@@ -11,11 +19,16 @@ typedef int16_t s16;
 typedef uint32_t u32;
 typedef int32_t s32;
 
+// Macros
+
 #define MIN(x,y) ((x) < (y) ? (x) : (y))
 #define MAX(x,y) ((x) > (y) ? (x) : (y))
+#define CLAMP(x,min,max) ({ typeof(x) _t=x; (_t < min) ? min : (_t > max) ? max : _t; })
 
 #define UNUSED __attribute__((unused))
 
+// Unaligned access to data
+
 static inline uint get_u16_le(byte *p)
 {
        return (p[1] << 8) | p[0];
@@ -64,8 +77,11 @@ static inline void put_u32_le(byte *p, u32 x)
        p[0] = x & 0xff;
 }
 
-// debug.c
+// util-debug.c
 
 void debug_printf(const char *fmt, ...);
 void debug_puts(const char *s);
 void debug_putc(int c);
+
+void debug_led(bool light);
+void debug_led_toggle(void);