Index

auto-plow / 086937a

A wheelchair motor-propelled battery-powered ESP32-driven remote control snow plow.

Latest Commit

{#}TimeHashSubjectAuthor#(+)(-)GPG?
8007 Sep 2020 18:1622d39c4Retab source filesJosh Stockin199G

Blob @ auto-plow / main / util.c

text/plain696 bytesdownload raw
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
10int ticks_to_ms(int ticks) {
11 return (int)(ticks * portTICK_PERIOD_MS);
12}
13int ms_to_ticks(int ms) {
14 return (int)(ms / portTICK_PERIOD_MS);
15}
16
17void delay(int ms) {
18 vTaskDelay(ms_to_ticks(ms));
19}
20
21int 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