aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorJosh Rahm <joshuarahm@gmail.com>2021-09-27 22:56:46 -0600
committerJosh Rahm <joshuarahm@gmail.com>2021-09-27 22:56:46 -0600
commit90eb3a0b79bfef67c70dc545b49c48928eea05f4 (patch)
tree66718a17063ce4fa5c32c4a8ac094d09f7fab6de /include
parent5f1763ec87503527583cb1a7c6deb73604db0dfc (diff)
downloadstm32l4-ir_leds.tar.gz
stm32l4-ir_leds.tar.bz2
stm32l4-ir_leds.zip
Completed ws2812b 2020 Christmas Lights.ir_leds
Diffstat (limited to 'include')
-rw-r--r--include/drv/ws2812B/ws2812b.h3
-rw-r--r--include/kern/exti/exti_manager.h32
-rw-r--r--include/shared/avl_tree.h.gchbin0 -> 11451 bytes
-rw-r--r--include/shared/math.h19
4 files changed, 51 insertions, 3 deletions
diff --git a/include/drv/ws2812B/ws2812b.h b/include/drv/ws2812B/ws2812b.h
index 3189907..d7137a1 100644
--- a/include/drv/ws2812B/ws2812b.h
+++ b/include/drv/ws2812B/ws2812b.h
@@ -30,7 +30,4 @@ void ws2812b_write_rgb_arr_sync(ws2812b_t* drv, rgb_t* arr, size_t arr_len);
void ws2812b_delete(ws2812b_t* drv);
-/* Returns round(sin(2πn / 256) * 127.5 + 127.5). */
-uint8_t byte_sin(uint8_t n);
-
#endif /* WS2812B_H_ */
diff --git a/include/kern/exti/exti_manager.h b/include/kern/exti/exti_manager.h
new file mode 100644
index 0000000..aa39b4f
--- /dev/null
+++ b/include/kern/exti/exti_manager.h
@@ -0,0 +1,32 @@
+#ifndef _KERN_EXTI_EXTI_MANAGER_H_
+#define _KERN_EXTI_EXTI_MANAGER_H_
+
+#include "kern/common.h"
+#include "kern/gpio/gpio_manager.h"
+#include "shared/linked_list.h"
+
+#define EXTI_ERROR_ALREADY_IN_USE 1
+
+struct EXTI_HANDLE;
+
+
+typedef struct {
+ void (*fn)(struct EXTI_HANDLE, void*);
+ void* closure;
+} exti_callback_t;
+
+LINKED_LIST_DECL(exti_callback_t);
+typedef struct EXTI_HANDLE {
+ uint8_t id;
+ linked_list_t(exti_callback_t)* callbacks;
+} exti_handle_t;
+
+exti_handle_t* enable_exti_for_gpio(gpio_pin_t gpio_pin, int* ec);
+
+exti_handle_t* exti_add_callback(exti_handle_t*, exti_callback_t* callback);
+
+gpio_pin_t exti_gpio_pin(exti_handle_t* handle);
+
+
+
+#endif /* _KERN_EXTI_EXTI_MANAGER_H_ */
diff --git a/include/shared/avl_tree.h.gch b/include/shared/avl_tree.h.gch
new file mode 100644
index 0000000..78fc043
--- /dev/null
+++ b/include/shared/avl_tree.h.gch
Binary files differ
diff --git a/include/shared/math.h b/include/shared/math.h
new file mode 100644
index 0000000..6aec0e7
--- /dev/null
+++ b/include/shared/math.h
@@ -0,0 +1,19 @@
+#ifndef _SHARED_MATH_H_
+#define _SHARED_MATH_H_
+
+#include "kern/common.h"
+
+/* Returns round(sin(2πn / 256) * 127.5 + 127.5). */
+uint8_t byte_sin(uint8_t n);
+
+static inline uint8_t byte_scale(uint8_t n, uint8_t sc) {
+ return n * sc / 255;
+}
+
+#define min(a, b) (a) < (b) ? (a) : (b)
+#define max(a, b) (a) > (b) ? (a) : (b)
+
+/* returns (in / 256)^n * 256. */
+uint8_t amp(uint8_t in, uint8_t n);
+
+#endif /* _SHARED_MATH_H_ */