Various types and definitions available to all applications.
More...
|
#define | STATIC_ASSERT(EXPR) typedef char static_assert_failed[(EXPR) ? 1 : -1] |
| Macro for doing static (i.e. compile time) assertion. More...
|
|
#define | ROUNDED_DIV(A, B) (((A) + ((B) / 2)) / (B)) |
| Perform rounded integer division (as opposed to truncating the result). More...
|
|
#define | IS_POWER_OF_TWO(A) ( ((A) != 0) && ((((A) - 1) & (A)) == 0) ) |
| Check if the integer provided is a power of two. More...
|
|
#define | MSEC_TO_UNITS(TIME, RESOLUTION) (((TIME) * 1000) / (RESOLUTION)) |
| To convert milliseconds to ticks. More...
|
|
#define | CEIL_DIV(A, B) |
| Perform integer division, making sure the result is rounded up. More...
|
|
|
typedef uint8_t | uint16_le_t [2] |
| type for holding an encoded (i.e. little endian) 16 bit unsigned integer.
|
|
typedef uint8_t | uint32_le_t [4] |
| type for holding an encoded (i.e. little endian) 32 bit unsigned integer.
|
|
Various types and definitions available to all applications.
#define CEIL_DIV |
( |
|
A, |
|
|
|
B |
|
) |
| |
Value: \
((((A) - 1) / (B)) + 1) \
Perform integer division, making sure the result is rounded up.
One typical use for this is to compute the number of objects with size B is needed to hold A number of bytes.
- Parameters
-
[in] | A | Numerator. |
[in] | B | Denominator. |
- Returns
- Integer result of dividing A by B, rounded up.
#define IS_POWER_OF_TWO |
( |
|
A | ) |
( ((A) != 0) && ((((A) - 1) & (A)) == 0) ) |
Check if the integer provided is a power of two.
- Parameters
-
[in] | A | Number to be tested. |
- Returns
- true if value is power of two.
-
false if value not power of two.
#define MSEC_TO_UNITS |
( |
|
TIME, |
|
|
|
RESOLUTION |
|
) |
| (((TIME) * 1000) / (RESOLUTION)) |
To convert milliseconds to ticks.
- Parameters
-
[in] | TIME | Number of milliseconds to convert. |
[in] | RESOLUTION | Unit to be converted to in [us/ticks]. |
#define ROUNDED_DIV |
( |
|
A, |
|
|
|
B |
|
) |
| (((A) + ((B) / 2)) / (B)) |
Perform rounded integer division (as opposed to truncating the result).
- Parameters
-
[in] | A | Numerator. |
[in] | B | Denominator. |
- Returns
- Rounded (integer) result of dividing A by B.
#define STATIC_ASSERT |
( |
|
EXPR | ) |
typedef char static_assert_failed[(EXPR) ? 1 : -1] |
Macro for doing static (i.e. compile time) assertion.
- Note
- If the assertion fails when compiling using Keil, the compiler will report error message "error: #94: the size of an array must be greater than zero" (while gcc will list the symbol static_assert_failed, making the error message more readable). If the supplied expression can not be evaluated at compile time, Keil will report "error: #28: expression must have a constant value".
-
The macro is intentionally implemented not using do while(0), allowing it to be used outside function blocks (e.g. close to global type- and variable declarations). If used in a code block, it must be used before any executable code in this block.
- Parameters
-
[in] | EXPR | Constant expression to be verified. |
Enumerator |
---|
UNIT_0_625_MS |
Number of microseconds in 0.625 milliseconds.
|
UNIT_1_25_MS |
Number of microseconds in 1.25 milliseconds.
|
UNIT_10_MS |
Number of microseconds in 10 milliseconds.
|