nRF51 SDK - S310 SoftDevice
 All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages
Utility Functions and Definitions

Various types and definitions available to all applications. More...

Data Structures

struct  uint8_array_t
 Byte array type. More...
 

Macros

#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 ticks to millisecond. More...
 
#define CEIL_DIV(A, B)
 Perform integer division, making sure the result is rounded up. More...
 

Typedefs

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.
 

Enumerations

enum  {
  UNIT_0_625_MS = 625,
  UNIT_1_25_MS = 1250,
  UNIT_10_MS = 10000
}
 

Detailed Description

Various types and definitions available to all applications.

Macro Definition Documentation

#define CEIL_DIV (   A,
 
)
Value:
/*lint -save -e573 */ \
((((A) - 1) / (B)) + 1) \
/*lint -restore */

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]ANumerator.
[in]BDenominator.
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]ANumber 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 ticks to millisecond.

Parameters
[in]timeNumber of millseconds that needs to be converted.
[in]resolutionUnits to be converted.
#define ROUNDED_DIV (   A,
 
)    (((A) + ((B) / 2)) / (B))

Perform rounded integer division (as opposed to truncating the result).

Parameters
[in]ANumerator.
[in]BDenominator.
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]EXPRConstant expression to be verified.

Enumeration Type Documentation

anonymous enum
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.