nRF51 SDK
|
Various types and definitions available to all applications. More...
Macros | |
#define | NRF_APP_PRIORITY_THREAD 4 |
#define | PACKED(TYPE) __packed TYPE |
#define | STATIC_ASSERT(EXPR) typedef char static_assert_failed[(EXPR) ? 1 : -1] |
Macro for doing static (i.e. compile time) assertion. More... | |
#define | GPIO_PIN_CONFIG(PIN_NO, IO_DIR, IO_INPUT, IO_PULL, IO_DRIVE, IO_SENSE) INTERN_GPIO_PIN_CONFIG(PIN_NO, IO_DIR, IO_INPUT, IO_PULL, IO_DRIVE, IO_SENSE) |
Macro to configure an I/O. More... | |
#define | GPIO_LED_CONFIG(PIN_NO) |
Configure a PIN to be used as a LED. More... | |
#define | GPIO_DEBUG_PIN_CONFIG(PIN_NO) |
Configure a PIN to be used as a debug pin (e.g. to be monitored using a logic analyzer). More... | |
#define | GPIO_BUTTON_CONFIG(PIN_NO) |
Configure a PIN to be used as a Button. More... | |
#define | GPIO_WAKEUP_BUTTON_CONFIG(PIN_NO) |
Configure a PIN to be used as a Button and a Wakeup source. More... | |
#define | GPIO_BUTTON_WITH_PULLUP_CONFIG(PIN_NO) |
Configure a PIN to be used as a Button, with a pullup resistor enabled. More... | |
#define | GPIO_WAKEUP_BUTTON_WITH_PULLUP_CONFIG(PIN_NO) |
Configure a PIN to be used as a Button and a Wakeup source, with a pullup resistor enabled. More... | |
#define | CRITICAL_REGION_ENTER() |
Macro for entering a critical region. More... | |
#define | CRITICAL_REGION_EXIT() |
Macro for leaving a critical region. 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 | app_irq_priority_t { APP_IRQ_PRIORITY_HIGH = 1, APP_IRQ_PRIORITY_LOW = 3 } |
The interrupt priorities available to the application while the softdevice is active. | |
enum | { UNIT_0_625_MS = 625, UNIT_1_25_MS = 1250, UNIT_10_MS = 10000 } |
Functions | |
static __INLINE uint8_t | uint16_encode (uint16_t value, uint8_t *p_encoded_data) |
Function for encoding a uint16 value. More... | |
static __INLINE uint8_t | uint32_encode (uint32_t value, uint8_t *p_encoded_data) |
Function for encoding a uint32 value. More... | |
static __INLINE uint16_t | uint16_decode (const uint8_t *p_encoded_data) |
Function for decoding a uint16 value. More... | |
static __INLINE uint32_t | uint32_decode (const uint8_t *p_encoded_data) |
Function for decoding a uint32 value. More... | |
static __INLINE uint8_t | current_int_priority_get (void) |
Function for finding the current interrupt level. More... | |
static __INLINE uint8_t | battery_level_in_percent (const uint16_t mvolts) |
Function for converting the input voltage (in milli volts) into percentage of 3.0 Volts. More... | |
static __INLINE bool | is_word_aligned (void *p) |
Function for checking if a pointer value is aligned to a 4 byte boundary. More... | |
Data Structures | |
struct | uint8_array_t |
Byte array type. More... | |
#define NRF_APP_PRIORITY_THREAD 4 |
"Interrupt level" when running in Thread Mode.
#define STATIC_ASSERT | ( | EXPR | ) | typedef char static_assert_failed[(EXPR) ? 1 : -1] |
[in] | EXPR | Constant expression to be verified. |
#define GPIO_PIN_CONFIG | ( | PIN_NO, | |
IO_DIR, | |||
IO_INPUT, | |||
IO_PULL, | |||
IO_DRIVE, | |||
IO_SENSE | |||
) | INTERN_GPIO_PIN_CONFIG(PIN_NO, IO_DIR, IO_INPUT, IO_PULL, IO_DRIVE, IO_SENSE) |
This macro configures a given I/O to input or output with pullup/buffer configuration.
[in] | PIN_NO | I/O pin to configure. |
[in] | IO_DIR | I/O pin direction. |
[in] | IO_INPUT | Connect or disconnect input path. |
[in] | IO_PULL | Pull-up or -down configuration. |
[in] | IO_DRIVE | Drive configuration. |
[in] | IO_SENSE | Pin sensing mechanism. |
#define GPIO_LED_CONFIG | ( | PIN_NO | ) |
[in] | PIN_NO | Input pin to configure. |
#define GPIO_DEBUG_PIN_CONFIG | ( | PIN_NO | ) |
[in] | PIN_NO | Input pin to configure. |
#define GPIO_BUTTON_CONFIG | ( | PIN_NO | ) |
[in] | PIN_NO | Pin to configure. |
#define GPIO_WAKEUP_BUTTON_CONFIG | ( | PIN_NO | ) |
[in] | PIN_NO | Pin to configure. |
#define GPIO_BUTTON_WITH_PULLUP_CONFIG | ( | PIN_NO | ) |
[in] | PIN_NO | Pin to configure. |
#define GPIO_WAKEUP_BUTTON_WITH_PULLUP_CONFIG | ( | PIN_NO | ) |
[in] | PIN_NO | Pin to configure. |
#define CRITICAL_REGION_ENTER | ( | ) |
#define CRITICAL_REGION_EXIT | ( | ) |
#define ROUNDED_DIV | ( | A, | |
B | |||
) | (((A) + ((B) / 2)) / (B)) |
[in] | A | Numerator. |
[in] | B | Denominator. |
#define IS_POWER_OF_TWO | ( | A | ) | ( ((A) != 0) && ((((A) - 1) & (A)) == 0) ) |
[in] | A | Number to be tested. |
#define MSEC_TO_UNITS | ( | TIME, | |
RESOLUTION | |||
) | (((TIME) * 1000) / (RESOLUTION)) |
[in] | time | Number of millseconds that needs to be converted. |
[in] | resolution | Units to be converted. |
#define CEIL_DIV | ( | A, | |
B | |||
) |
One typical use for this is to compute the number of objects with size B is needed to hold A number of bytes.
[in] | A | Numerator. |
[in] | B | Denominator. |
anonymous enum |
|
static |
[in] | value | Value to be encoded. |
[out] | p_encoded_data | Buffer where the encoded data is to be written. |
|
static |
[in] | value | Value to be encoded. |
[out] | p_encoded_data | Buffer where the encoded data is to be written. |
|
static |
[in] | p_encoded_data | Buffer where the encoded data is stored. |
|
static |
[in] | p_encoded_data | Buffer where the encoded data is stored. |
|
static |
APP_IRQ_PRIORITY_HIGH | We are running in Application High interrupt level. |
APP_IRQ_PRIORITY_LOW | We are running in Application Low interrupt level. |
APP_IRQ_PRIORITY_THREAD | We are running in Thread Mode. |
|
static |
The calculation is based on a linearized version of the battery's discharge curve. 3.0V returns 100% battery level. The limit for power failure is 2.1V and is considered to be the lower boundary.
The discharge curve for CR2032 is non-linear. In this model it is split into 4 linear sections:
These numbers are by no means accurate. Temperature and load in the actual application is not accounted for!
[in] | mvolts | The voltage in mV |
|
static |
[in] | p | Pointer value to be checked. |