Loading...
Searching...
No Matches
Common Macros

Utility macros. More...

Macros

#define ARRAY_SIZE(arr)   (sizeof(arr) / sizeof((arr)[0]))
 Get number of elements in array.
 
#define BIT(n)   (1 << (n))
 Create a bit mask.
 
#define CLAMP(x, lo, hi)   (((x) < (lo)) ? (lo) : (((x) > (hi)) ? (hi) : (x)))
 Clamp value to range.
 
#define HI_BYTE(x)   ((u8)(((x) >> 8) & 0xFF))
 Get high byte of 16-bit value.
 
#define LO_BYTE(x)   ((u8)((x) & 0xFF))
 Get low byte of 16-bit value.
 
#define MAKE_WORD(lo, hi)   ((u16)(((u8)(hi) << 8) | (u8)(lo)))
 Combine two bytes into 16-bit value.
 
#define MAX(a, b)   (((a) > (b)) ? (a) : (b))
 Get maximum of two values.
 
#define MIN(a, b)   (((a) < (b)) ? (a) : (b))
 Get minimum of two values.
 
#define NULL   ((void*)0)
 Null pointer constant.
 

Detailed Description

Utility macros.

Macro Definition Documentation

◆ ARRAY_SIZE

#define ARRAY_SIZE (   arr)    (sizeof(arr) / sizeof((arr)[0]))

Get number of elements in array.

Parameters
arrArray variable
Returns
Number of elements

◆ BIT

#define BIT (   n)    (1 << (n))

Create a bit mask.

Parameters
nBit number (0-15)
Returns
Bitmask with bit n set
u16 flags = BIT(0) | BIT(3); // 0x0009
#define BIT(n)
Create a bit mask.
Definition types.h:155
unsigned short u16
16-bit unsigned integer (0 to 65535)
Definition types.h:52

◆ CLAMP

#define CLAMP (   x,
  lo,
  hi 
)    (((x) < (lo)) ? (lo) : (((x) > (hi)) ? (hi) : (x)))

Clamp value to range.

Parameters
xValue to clamp
loMinimum value
hiMaximum value

◆ HI_BYTE

#define HI_BYTE (   x)    ((u8)(((x) >> 8) & 0xFF))

Get high byte of 16-bit value.

Parameters
x16-bit value
Returns
High 8 bits

◆ LO_BYTE

#define LO_BYTE (   x)    ((u8)((x) & 0xFF))

Get low byte of 16-bit value.

Parameters
x16-bit value
Returns
Low 8 bits

◆ MAKE_WORD

#define MAKE_WORD (   lo,
  hi 
)    ((u16)(((u8)(hi) << 8) | (u8)(lo)))

Combine two bytes into 16-bit value.

Parameters
loLow byte
hiHigh byte
Returns
16-bit value

◆ MAX

#define MAX (   a,
  b 
)    (((a) > (b)) ? (a) : (b))

Get maximum of two values.

◆ MIN

#define MIN (   a,
  b 
)    (((a) < (b)) ? (a) : (b))

Get minimum of two values.

◆ NULL

#define NULL   ((void*)0)

Null pointer constant.