1 | // util.c |
2 | // Basic utilities |
3 | // Copyright (c) Joshua 'joshuas3' Stockin 2019 |
4 |
|
5 | #include "util.h" |
6 |
|
7 | #include "freertos/FreeRTOS.h" |
8 | #include "freertos/task.h" |
9 |
|
10 | int ticks_to_ms(int ticks) { |
11 | return (int)(ticks * portTICK_PERIOD_MS); |
12 | } |
13 | int ms_to_ticks(int ms) { |
14 | return (int)(ms / portTICK_PERIOD_MS); |
15 | } |
16 |
|
17 | void delay(int ms) { |
18 | vTaskDelay(ms_to_ticks(ms)); |
19 | } |
20 |
|
21 | int map(int input, int min_in, int max_in, int min_out, int max_out) { |
22 | float range_in = max_in - min_in; |
23 | float range_out = max_out - min_out; |
24 |
|
25 | if (input < min_in) input = min_in; |
26 | else if (input > max_in) input = max_in; |
27 |
|
28 | float lerp = (input - min_in) / range_in; |
29 |
|
30 | return (int)((lerp * range_out) + min_out); |
31 | } |
32 |
|