|
11 | 11 | #if !defined(_TOOLS_EASY_HPP_) |
12 | 12 | #define _TOOLS_EASY_HPP_ |
13 | 13 |
|
| 14 | +//---------------------------------------------------------------------- |
| 15 | +// Bit operations |
| 16 | +//---------------------------------------------------------------------- |
| 17 | + |
| 18 | +/// @brief |
14 | 19 | #define _bv(num) (1 << num) |
| 20 | + |
| 21 | +/// @brief set bit |
15 | 22 | #define sbi(reg, bit) (reg |= _bv(bit)) |
| 23 | + |
| 24 | +/// @brief cler bit |
16 | 25 | #define cbi(reg, bit) (reg &= ~_bv(bit)) |
| 26 | + |
| 27 | +/// @brief toggle bit |
17 | 28 | #define tbi(reg, bit) (reg ^= _bv(bit)) |
18 | 29 |
|
| 30 | +/// @brief Write bit |
19 | 31 | #define wbi(reg, bit, value) (value ? sbi(reg, bit) : cbi(reg, bit)) |
| 32 | + |
| 33 | +/// @brief read bit |
20 | 34 | #define rbi(reg, bit) ((reg >> bit) & 0x1) |
21 | | -#if 0 |
| 35 | + |
| 36 | +/// @brief get value by bit count |
| 37 | +#define maxBitValue(bits) ((1ULL << (bits)) - 1) |
| 38 | + |
| 39 | +//---------------------------------------------------------------------- |
| 40 | +// Bit operations |
| 41 | +//---------------------------------------------------------------------- |
| 42 | + |
| 43 | +/// @brief get size array |
| 44 | +#define getArraySize(X) (sizeof(X) / sizeof(*X)) |
| 45 | + |
| 46 | +#if 0 |
| 47 | + |
| 48 | +/// @brief |
| 49 | +#if defined(M_PI) |
| 50 | +#define PI (M_PI) |
| 51 | +#else |
22 | 52 | #define PI (3.1415926535897932384626433832795028841971693993751) |
23 | | -#define DEG_TO_RAD (0.0174532925199432957692369076848861271344287188854) |
24 | | -#define RAD_TO_DEG (57.295779513082320876798154814105170332405472466564) |
| 53 | +#endif |
| 54 | + |
| 55 | +/// @brief |
| 56 | +#define RAD_TO_DEG (180. / PI) |
| 57 | + |
| 58 | +/// @brief |
| 59 | +#define DEG_TO_RAD (PI / 180.) |
25 | 60 |
|
26 | 61 | #ifdef abs |
27 | 62 | #undef abs |
|
32 | 67 | #define abs(x) ((x) > 0 ? (x) : -(x)) |
33 | 68 | #define constrain(amt, low, high) \ |
34 | 69 | ((amt) < (low) ? (low) : ((amt) > (high) ? (high) : (amt))) |
35 | | -#define round(x) ((x) >= 0 ? (long)((x) + 0.5) : (long)((x)-0.5)) |
36 | | -#define radians(deg) ((deg)*DEG_TO_RAD) |
37 | | -#define degrees(rad) ((rad)*RAD_TO_DEG) |
| 70 | +#define round(x) ((x) >= 0 ? (long)((x) + 0.5) : (long)((x) - 0.5)) |
| 71 | +#define radians(deg) ((deg) * DEG_TO_RAD) |
| 72 | +#define degrees(rad) ((rad) * RAD_TO_DEG) |
38 | 73 | #define map(value, in_min, in_max, out_min, out_max) \ |
39 | 74 | ((value - in_min) * (out_max - out_min) / (in_max - in_min) + out_min) |
40 | 75 | #endif |
41 | | -#define maxBitValue(bits) ((1ULL << (bits)) - 1) |
42 | | - |
| 76 | + |
43 | 77 | #endif ///< _TOOLS_EASY_HPP_ |
0 commit comments