embclib  0.1
utils.h
Go to the documentation of this file.
1 
28 #ifndef UTILS_af45c5ee_eb0b_11e9_8850_74dfbf0d835a
29 #define UTILS_af45c5ee_eb0b_11e9_8850_74dfbf0d835a
30 
31 #ifdef __cplusplus
32  extern "C" {
33 #endif
34 
40 #define __UTILS_VERSION (0x0001u)
42 #include "stdint.h"
43 
48 #define Min(a, b) (((a) < (b)) ? (a) : (b))
49 
54 #define Max(a, b) (((a) > (b)) ? (a) : (b))
55 
60 #define Abs(n) ((n < 0) ? (-n) : (n))
61 
66 #define Pow2(x) (1 << (x))
67 
72 #define Swap(a,b) ((a) ^= (b) ^= (a) ^= (b))
73 
78 #define Limit(val, min, max) (Min( Max(val, (min) ), (max) ))
79 
87 int16_t
88 UTILS_Rand_i16(int16_t min_i16, int16_t max_i16);
89 
95 void
96 UTILS_RandSeed(uint16_t seed_i16);
97 
108 int16_t
109 UTILS_Scale_i16(int16_t in_value_i16,
110  int16_t in_min_i16, int16_t in_max_i16,
111  int16_t out_min_i16, int16_t out_max_i16);
112 
113 #ifdef __cplusplus
114 }
115 #endif
116 
117 #endif /* UTILS_af45c5ee_eb0b_11e9_8850_74dfbf0d835a */
unsigned int uint16_t
16 bit unsigned integer. Unsigned integer type maximun and minimum limits
Definition: stdint.h:74
int16_t UTILS_Scale_i16(int16_t in_value_i16, int16_t in_min_i16, int16_t in_max_i16, int16_t out_min_i16, int16_t out_max_i16)
Scale a number from one range to another.
Definition: utils.c:46
int16_t UTILS_Rand_i16(int16_t min_i16, int16_t max_i16)
Generate the random value between range.
Definition: utils.c:33
signed int int16_t
16 bit signed integer. Signed integer type maximun and minimum limits
Definition: stdint.h:56
void UTILS_RandSeed(uint16_t seed_i16)
Initialize the value to random number generator.
Definition: utils.c:27