Common PLATFORM_HEADER Configuration
Compiler and Platform specific definitions and typedefs common to all platforms. More...
Macros |
|
#define | MEMSET (d, v, l) memset(d, v, l) |
Friendly convenience macro pointing to the C Stdlib functions.
More...
|
|
#define | MEMCOPY (d, s, l) memcpy(d, s, l) |
#define | MEMMOVE (d, s, l) memmove(d, s, l) |
#define | MEMPGMCOPY (d, s, l) memcpy(d, s, l) |
#define | MEMCOMPARE (s0, s1, l) memcmp(s0, s1, l) |
#define | MEMPGMCOMPARE (s0, s1, l) memcmp(s0, s1, l) |
Generic Types |
|
#define | TRUE 1 |
An alias for one, used for clarity.
More...
|
|
#define | FALSE 0 |
An alias for zero, used for clarity.
More...
|
|
#define | NULL ((void *)0) |
The null pointer.
More...
|
|
Bit Manipulation Macros |
|
#define | BIT (x) (1U << (x)) |
Useful to reference a single bit of a byte.
More...
|
|
#define | BIT32 (x) (((uint32_t) 1) << (x)) |
Useful to reference a single bit of an uint32_t type.
More...
|
|
#define | SETBIT (reg, bit) (reg) |= BIT (bit) |
Sets
bit
in the
reg
register or byte.
More...
|
|
#define | SETBITS (reg, bits) (reg) |= (bits) |
Sets the bits in the
reg
register or the byte as specified in the bitmask
bits
.
More...
|
|
#define | CLEARBIT (reg, bit) (reg) &= ~( BIT (bit)) |
Clears a bit in the
reg
register or byte.
More...
|
|
#define | CLEARBITS (reg, bits) (reg) &= ~(bits) |
Clears the bits in the
reg
register or byte as specified in the bitmask
bits
.
More...
|
|
#define | READBIT (reg, bit) ((reg) & ( BIT (bit))) |
Returns the value of
bit
within the register or byte
reg
.
More...
|
|
#define | READBITS (reg, bits) ((reg) & (bits)) |
Returns the value of the bitmask
bits
within the register or byte
reg
.
More...
|
|
Byte Manipulation Macros |
|
#define | LOW_BYTE (n) ((uint8_t)(n)) |
Returns the low byte of the 16-bit value
n
as an
uint8_t
.
More...
|
|
#define | HIGH_BYTE (n) LOW_BYTE ((n) >> 8) |
Returns the high byte of the 16-bit value
n
as an
uint8_t
.
More...
|
|
#define | HIGH_LOW_TO_INT (high, low) |
Returns the value built from the two
uint8_t
values
high
and
low
.
More...
|
|
#define | INT8U_TO_INT32U (byte3, byte2, byte1, byte0) |
Returns the value built from the four
uint8_t
as an
uint32_t
.
More...
|
|
#define | BYTE_0 (n) ((uint8_t)(n)) |
Returns the low byte of the 32-bit value
n
as an
uint8_t
.
More...
|
|
#define | BYTE_1 (n) BYTE_0 ((n) >> 8) |
Returns the second byte of the 32-bit value
n
as an
uint8_t
.
More...
|
|
#define | BYTE_2 (n) BYTE_0 ((n) >> 16) |
Returns the third byte of the 32-bit value
n
as an
uint8_t
.
More...
|
|
#define | BYTE_3 (n) BYTE_0 ((n) >> 24) |
Returns the high byte of the 32-bit value
n
as an
uint8_t
.
More...
|
|
#define | BYTE_4 (n) BYTE_0 ((n) >> 32) |
Returns the fifth byte of the 64-bit value
n
as an
uint8_t
.
More...
|
|
#define | BYTE_5 (n) BYTE_0 ((n) >> 40) |
Returns the sixth byte of the 64-bit value
n
as an
uint8_t
.
More...
|
|
#define | BYTE_6 (n) BYTE_0 ((n) >> 48) |
Returns the seventh byte of the 64-bit value
n
as an
uint8_t
.
More...
|
|
#define | BYTE_7 (n) BYTE_0 ((n) >> 56) |
Returns the high byte of the 64-bit value
n
as an
uint8_t
.
More...
|
|
#define | COUNTOF (a) (sizeof(a) / sizeof(a[0])) |
Returns the number of entries in an array.
More...
|
|
Time Manipulation Macros |
|
#define | elapsedTimeInt8u (oldTime, newTime) ((uint8_t) ((uint8_t)(newTime) - (uint8_t)(oldTime))) |
Returns the elapsed time between two 8 bit values. Result may not be valid if the time samples differ by more than 127.
More...
|
|
#define | elapsedTimeInt16u (oldTime, newTime) ((uint16_t) ((uint16_t)(newTime) - (uint16_t)(oldTime))) |
Returns the elapsed time between two 16 bit values. Result may not be valid if the time samples differ by more than 32767.
More...
|
|
#define | elapsedTimeInt32u (oldTime, newTime) ((uint32_t) ((uint32_t)(newTime) - (uint32_t)(oldTime))) |
Returns the elapsed time between two 32 bit values. Result may not be valid if the time samples differ by more than 2147483647.
More...
|
|
#define | MAX_INT8U_VALUE (0xFF) |
Returns true if t1 is greater than t2. Can only account for 1 wrap around of the variable before it is wrong.
More...
|
|
#define | HALF_MAX_INT8U_VALUE (0x80) |
Returns the elapsed time between two 8 bit values. Result may not be valid if the time samples differ by more than 127.
More...
|
|
#define | timeGTorEqualInt8u (t1, t2) ( elapsedTimeInt8u (t2, t1) <= ( HALF_MAX_INT8U_VALUE )) |
Returns the elapsed time between two 8 bit values. Result may not be valid if the time samples differ by more than 127.
More...
|
|
#define | MAX_INT16U_VALUE (0xFFFF) |
Returns true if t1 is greater than t2. Can only account for 1 wrap around of the variable before it is wrong.
More...
|
|
#define | HALF_MAX_INT16U_VALUE (0x8000) |
Returns the elapsed time between two 8 bit values. Result may not be valid if the time samples differ by more than 127.
More...
|
|
#define | timeGTorEqualInt16u (t1, t2) ( elapsedTimeInt16u (t2, t1) <= ( HALF_MAX_INT16U_VALUE )) |
Returns the elapsed time between two 8 bit values. Result may not be valid if the time samples differ by more than 127.
More...
|
|
#define | MAX_INT32U_VALUE (0xFFFFFFFFUL) |
Returns true if t1 is greater than t2. Can only account for 1 wrap around of the variable before it is wrong.
More...
|
|
#define | HALF_MAX_INT32U_VALUE (0x80000000UL) |
Returns the elapsed time between two 8 bit values. Result may not be valid if the time samples differ by more than 127.
More...
|
|
#define | timeGTorEqualInt32u (t1, t2) ( elapsedTimeInt32u (t2, t1) <= ( HALF_MAX_INT32U_VALUE )) |
Returns the elapsed time between two 8 bit values. Result may not be valid if the time samples differ by more than 127.
More...
|
|
Miscellaneous Macros |
|
#define | UNUSED_VAR (x) (void)(x) |
#define | DEBUG_LEVEL BASIC_DEBUG |
Set debug level based on whether DEBUG or DEBUG_STRIPPED are defined.
More...
|
|
#define | STATIC_ASSERT (__condition, __errorstr) |
Disable static assertions on compilers that don't support them.
More...
|
|
Detailed Description
Compiler and Platform specific definitions and typedefs common to all platforms.
platform-common.h
provides PLATFORM_HEADER defaults and common definitions. This head should never be included directly, it should only be included by the specific PLATFORM_HEADER used by your platform.
See
platform-common.h
for source code.
Macro Definition Documentation
◆ BIT
#define BIT | ( |
x
|
) | (1U << (x)) |
Useful to reference a single bit of a byte.
Definition at line
235
of file
platform-common.h
.
◆ BIT32
#define BIT32 | ( |
x
|
) | (((uint32_t) 1) << (x)) |
Useful to reference a single bit of an uint32_t type.
Definition at line
240
of file
platform-common.h
.
◆ BYTE_0
#define BYTE_0 | ( |
n
|
) | ((uint8_t)(n)) |
Returns the low byte of the 32-bit value
n
as an
uint8_t
.
Definition at line
322
of file
platform-common.h
.
◆ BYTE_1
#define BYTE_1 | ( |
n
|
) | BYTE_0 ((n) >> 8) |
Returns the second byte of the 32-bit value
n
as an
uint8_t
.
Definition at line
327
of file
platform-common.h
.
◆ BYTE_2
#define BYTE_2 | ( |
n
|
) | BYTE_0 ((n) >> 16) |
Returns the third byte of the 32-bit value
n
as an
uint8_t
.
Definition at line
332
of file
platform-common.h
.
◆ BYTE_3
#define BYTE_3 | ( |
n
|
) | BYTE_0 ((n) >> 24) |
Returns the high byte of the 32-bit value
n
as an
uint8_t
.
Definition at line
337
of file
platform-common.h
.
◆ BYTE_4
#define BYTE_4 | ( |
n
|
) | BYTE_0 ((n) >> 32) |
Returns the fifth byte of the 64-bit value
n
as an
uint8_t
.
Definition at line
342
of file
platform-common.h
.
◆ BYTE_5
#define BYTE_5 | ( |
n
|
) | BYTE_0 ((n) >> 40) |
Returns the sixth byte of the 64-bit value
n
as an
uint8_t
.
Definition at line
347
of file
platform-common.h
.
◆ BYTE_6
#define BYTE_6 | ( |
n
|
) | BYTE_0 ((n) >> 48) |
Returns the seventh byte of the 64-bit value
n
as an
uint8_t
.
Definition at line
352
of file
platform-common.h
.
◆ BYTE_7
#define BYTE_7 | ( |
n
|
) | BYTE_0 ((n) >> 56) |
Returns the high byte of the 64-bit value
n
as an
uint8_t
.
Definition at line
357
of file
platform-common.h
.
◆ CLEARBIT
#define CLEARBIT | ( |
reg,
|
|
bit
|
|||
) | (reg) &= ~( BIT (bit)) |
Clears a bit in the
reg
register or byte.
- Note
-
Assuming
reg
is an IO register, some platforms (such as the AVR) can implement this in a single atomic operation.
Definition at line
261
of file
platform-common.h
.
◆ CLEARBITS
#define CLEARBITS | ( |
reg,
|
|
bits
|
|||
) | (reg) &= ~(bits) |
Clears the bits in the
reg
register or byte as specified in the bitmask
bits
.
- Note
- This is never a single atomic operation.
Definition at line
268
of file
platform-common.h
.
◆ COUNTOF
#define COUNTOF | ( |
a
|
) | (sizeof(a) / sizeof(a[0])) |
Returns the number of entries in an array.
Definition at line
362
of file
platform-common.h
.
◆ DEBUG_LEVEL
#define DEBUG_LEVEL BASIC_DEBUG |
Set debug level based on whether DEBUG or DEBUG_STRIPPED are defined.
Definition at line
458
of file
platform-common.h
.
◆ elapsedTimeInt16u
#define elapsedTimeInt16u | ( |
oldTime,
|
|
newTime
|
|||
) | ((uint16_t) ((uint16_t)(newTime) - (uint16_t)(oldTime))) |
Returns the elapsed time between two 16 bit values. Result may not be valid if the time samples differ by more than 32767.
Definition at line
384
of file
platform-common.h
.
◆ elapsedTimeInt32u
#define elapsedTimeInt32u | ( |
oldTime,
|
|
newTime
|
|||
) | ((uint32_t) ((uint32_t)(newTime) - (uint32_t)(oldTime))) |
Returns the elapsed time between two 32 bit values. Result may not be valid if the time samples differ by more than 2147483647.
Definition at line
391
of file
platform-common.h
.
◆ elapsedTimeInt8u
#define elapsedTimeInt8u | ( |
oldTime,
|
|
newTime
|
|||
) | ((uint8_t) ((uint8_t)(newTime) - (uint8_t)(oldTime))) |
Returns the elapsed time between two 8 bit values. Result may not be valid if the time samples differ by more than 127.
Definition at line
377
of file
platform-common.h
.
◆ FALSE
#define FALSE 0 |
An alias for zero, used for clarity.
Definition at line
215
of file
platform-common.h
.
◆ HALF_MAX_INT16U_VALUE
#define HALF_MAX_INT16U_VALUE (0x8000) |
Returns the elapsed time between two 8 bit values. Result may not be valid if the time samples differ by more than 127.
Definition at line
408
of file
platform-common.h
.
◆ HALF_MAX_INT32U_VALUE
#define HALF_MAX_INT32U_VALUE (0x80000000UL) |
Returns the elapsed time between two 8 bit values. Result may not be valid if the time samples differ by more than 127.
Definition at line
417
of file
platform-common.h
.
◆ HALF_MAX_INT8U_VALUE
#define HALF_MAX_INT8U_VALUE (0x80) |
Returns the elapsed time between two 8 bit values. Result may not be valid if the time samples differ by more than 127.
Definition at line
399
of file
platform-common.h
.
◆ HIGH_BYTE
#define HIGH_BYTE | ( |
n
|
) | LOW_BYTE ((n) >> 8) |
Returns the high byte of the 16-bit value
n
as an
uint8_t
.
Definition at line
298
of file
platform-common.h
.
◆ HIGH_LOW_TO_INT
#define HIGH_LOW_TO_INT | ( |
high,
|
|
low
|
|||
) |
Returns the value built from the two
uint8_t
values
high
and
low
.
Definition at line
304
of file
platform-common.h
.
◆ INT8U_TO_INT32U
#define INT8U_TO_INT32U | ( |
byte3,
|
|
byte2,
|
|||
byte1,
|
|||
byte0
|
|||
) |
Returns the value built from the four
uint8_t
as an
uint32_t
.
Definition at line
312
of file
platform-common.h
.
◆ LOW_BYTE
#define LOW_BYTE | ( |
n
|
) | ((uint8_t)(n)) |
Returns the low byte of the 16-bit value
n
as an
uint8_t
.
Definition at line
293
of file
platform-common.h
.
◆ MAX_INT16U_VALUE
#define MAX_INT16U_VALUE (0xFFFF) |
Returns true if t1 is greater than t2. Can only account for 1 wrap around of the variable before it is wrong.
Definition at line
407
of file
platform-common.h
.
◆ MAX_INT32U_VALUE
#define MAX_INT32U_VALUE (0xFFFFFFFFUL) |
Returns true if t1 is greater than t2. Can only account for 1 wrap around of the variable before it is wrong.
Definition at line
416
of file
platform-common.h
.
◆ MAX_INT8U_VALUE
#define MAX_INT8U_VALUE (0xFF) |
Returns true if t1 is greater than t2. Can only account for 1 wrap around of the variable before it is wrong.
Definition at line
398
of file
platform-common.h
.
◆ MEMCOMPARE
#define MEMCOMPARE | ( |
s0,
|
|
s1,
|
|||
l
|
|||
) | memcmp(s0, s1, l) |
Definition at line
192
of file
platform-common.h
.
◆ MEMCOPY
#define MEMCOPY | ( |
d,
|
|
s,
|
|||
l
|
|||
) | memcpy(d, s, l) |
Definition at line
189
of file
platform-common.h
.
◆ MEMMOVE
#define MEMMOVE | ( |
d,
|
|
s,
|
|||
l
|
|||
) | memmove(d, s, l) |
Definition at line
190
of file
platform-common.h
.
◆ MEMPGMCOMPARE
#define MEMPGMCOMPARE | ( |
s0,
|
|
s1,
|
|||
l
|
|||
) | memcmp(s0, s1, l) |
Definition at line
193
of file
platform-common.h
.
◆ MEMPGMCOPY
#define MEMPGMCOPY | ( |
d,
|
|
s,
|
|||
l
|
|||
) | memcpy(d, s, l) |
Definition at line
191
of file
platform-common.h
.
◆ MEMSET
#define MEMSET | ( |
d,
|
|
v,
|
|||
l
|
|||
) | memset(d, v, l) |
Friendly convenience macro pointing to the C Stdlib functions.
Definition at line
188
of file
platform-common.h
.
◆ NULL
#define NULL ((void *)0) |
The null pointer.
Definition at line
222
of file
platform-common.h
.
◆ READBIT
#define READBIT | ( |
reg,
|
|
bit
|
|||
) | ((reg) & ( BIT (bit))) |
Returns the value of
bit
within the register or byte
reg
.
Definition at line
273
of file
platform-common.h
.
◆ READBITS
#define READBITS | ( |
reg,
|
|
bits
|
|||
) | ((reg) & (bits)) |
Returns the value of the bitmask
bits
within the register or byte
reg
.
Definition at line
279
of file
platform-common.h
.
◆ SETBIT
#define SETBIT | ( |
reg,
|
|
bit
|
|||
) | (reg) |= BIT (bit) |
Sets
bit
in the
reg
register or byte.
- Note
-
Assuming
reg
is an IO register, some platforms (such as the AVR) can implement this in a single atomic operation.
Definition at line
247
of file
platform-common.h
.
◆ SETBITS
#define SETBITS | ( |
reg,
|
|
bits
|
|||
) | (reg) |= (bits) |
Sets the bits in the
reg
register or the byte as specified in the bitmask
bits
.
- Note
- This is never a single atomic operation.
Definition at line
254
of file
platform-common.h
.
◆ STATIC_ASSERT
#define STATIC_ASSERT | ( |
__condition,
|
|
__errorstr
|
|||
) |
Disable static assertions on compilers that don't support them.
Definition at line
466
of file
platform-common.h
.
◆ timeGTorEqualInt16u
#define timeGTorEqualInt16u | ( |
t1,
|
|
t2
|
|||
) | ( elapsedTimeInt16u (t2, t1) <= ( HALF_MAX_INT16U_VALUE )) |
Returns the elapsed time between two 8 bit values. Result may not be valid if the time samples differ by more than 127.
Definition at line
409
of file
platform-common.h
.
◆ timeGTorEqualInt32u
#define timeGTorEqualInt32u | ( |
t1,
|
|
t2
|
|||
) | ( elapsedTimeInt32u (t2, t1) <= ( HALF_MAX_INT32U_VALUE )) |
Returns the elapsed time between two 8 bit values. Result may not be valid if the time samples differ by more than 127.
Definition at line
418
of file
platform-common.h
.
◆ timeGTorEqualInt8u
#define timeGTorEqualInt8u | ( |
t1,
|
|
t2
|
|||
) | ( elapsedTimeInt8u (t2, t1) <= ( HALF_MAX_INT8U_VALUE )) |
Returns the elapsed time between two 8 bit values. Result may not be valid if the time samples differ by more than 127.
Definition at line
400
of file
platform-common.h
.
◆ TRUE
#define TRUE 1 |
An alias for one, used for clarity.
Definition at line
210
of file
platform-common.h
.
◆ UNUSED_VAR
#define UNUSED_VAR | ( |
x
|
) | (void)(x) |
- Description:
- Useful macro for avoiding compiler warnings related to unused function arguments or unused variables.
Definition at line
436
of file
platform-common.h
.