nRF51 SDK - S120 SoftDevice
 All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages
Board Support Package

BSP module. More...

Macros

#define BUTTON_ERASE_BONDING   BSP_BUTTON_0_MASK
 
#define BUTTON_ERASE_ALL   BSP_BUTTON_1_MASK
 
#define BUTTON_ADVERTISE   BSP_BUTTON_0_MASK
 
#define BUTTON_CLEAR_EVT   BSP_BUTTON_1_MASK
 
#define BUTTON_CAPSLOCK   BSP_BUTTON_2_MASK
 
#define BSP_BUTTONS_ALL   0xFFFFFFFF
 
#define BSP_BUTTONS_NONE   0
 
#define BSP_INIT_NONE   0
 Types of BSP initialization. More...
 
#define BSP_INIT_LED   (1 << 0)
 
#define BSP_INIT_BUTTONS   (1 << 1)
 
#define BSP_INIT_UART   (1 << 2)
 
#define BSP_INDICATIONS_LIST
 

Typedefs

typedef void(* bsp_event_callback_t )(bsp_event_t)
 BSP module event callback function type. More...
 

Enumerations

enum  bsp_indication_t {
  BSP_INDICATE_FIRST = 0,
  BSP_INDICATE_IDLE = BSP_INDICATE_FIRST,
  BSP_INDICATE_SCANNING,
  BSP_INDICATE_ADVERTISING,
  BSP_INDICATE_ADVERTISING_WHITELIST,
  BSP_INDICATE_ADVERTISING_SLOW,
  BSP_INDICATE_ADVERTISING_DIRECTED,
  BSP_INDICATE_BONDING,
  BSP_INDICATE_CONNECTED,
  BSP_INDICATE_SENT_OK,
  BSP_INDICATE_SEND_ERROR,
  BSP_INDICATE_RCV_OK,
  BSP_INDICATE_RCV_ERROR,
  BSP_INDICATE_FATAL_ERROR,
  BSP_INDICATE_ALERT_0,
  BSP_INDICATE_ALERT_1,
  BSP_INDICATE_ALERT_2,
  BSP_INDICATE_ALERT_3,
  BSP_INDICATE_ALERT_OFF,
  BSP_INDICATE_USER_STATE_OFF,
  BSP_INDICATE_USER_STATE_0,
  BSP_INDICATE_USER_STATE_1,
  BSP_INDICATE_USER_STATE_2,
  BSP_INDICATE_USER_STATE_3,
  BSP_INDICATE_USER_STATE_ON,
  BSP_INDICATE_LAST = BSP_INDICATE_USER_STATE_ON
}
 BSP indication states. More...
 
enum  bsp_event_t {
  BSP_EVENT_NOTHING = 0,
  BSP_EVENT_CLEAR_BONDING_DATA,
  BSP_EVENT_CLEAR_ALERT,
  BSP_EVENT_DISCONNECT,
  BSP_EVENT_ADVERTISING_START,
  BSP_EVENT_ADVERTISING_STOP,
  BSP_EVENT_BOND,
  BSP_EVENT_RESET,
  BSP_EVENT_SLEEP,
  BSP_EVENT_WAKEUP,
  BSP_EVENT_DFU,
  BSP_EVENT_KEY_0,
  BSP_EVENT_KEY_1,
  BSP_EVENT_KEY_2,
  BSP_EVENT_KEY_3,
  BSP_EVENT_KEY_4,
  BSP_EVENT_KEY_5,
  BSP_EVENT_KEY_6,
  BSP_EVENT_KEY_7,
  BSP_EVENT_KEY_LAST = BSP_EVENT_KEY_7
}
 BSP events. More...
 

Functions

uint32_t bsp_init (uint32_t type, uint32_t ticks_per_100ms, bsp_event_callback_t callback)
 Function for initializing BSP. More...
 
uint32_t bsp_buttons_state_get (uint32_t *p_buttons_state)
 Function for getting buttons states. More...
 
uint32_t bsp_button_is_pressed (uint32_t button, bool *p_state)
 Function for checking buttons states. More...
 
uint32_t bsp_event_to_button_assign (uint32_t button, bsp_event_t event)
 Function for assigning specific event to button. More...
 
uint32_t bsp_indication_set (bsp_indication_t indicate)
 Function for configuring indicators to required state. More...
 
uint32_t bsp_indication_text_set (bsp_indication_t indicate, const char *p_text)
 Function for configuring indicators to required state. More...
 
uint32_t bsp_buttons_enable (uint32_t buttons)
 Function for enabling specified buttons (others are disabled). More...
 

Detailed Description

BSP module.

This module provides a layer of abstraction from the board. It allows the user to indicate certain states on LEDs in a simple way. Module functionality can be modified by additional defines:

Macro Definition Documentation

#define BSP_INDICATIONS_LIST
Value:
{ \
"BSP_INDICATE_IDLE\n\r", \
"BSP_INDICATE_SCANNING\n\r", \
"BSP_INDICATE_ADVERTISING\n\r", \
"BSP_INDICATE_ADVERTISING_WHITELIST\n\r", \
"BSP_INDICATE_ADVERTISING_SLOW\n\r", \
"BSP_INDICATE_ADVERTISING_DIRECTED\n\r", \
"BSP_INDICATE_BONDING\n\r", \
"BSP_INDICATE_CONNECTED\n\r", \
"BSP_INDICATE_SENT_OK\n\r", \
"BSP_INDICATE_SEND_ERROR\n\r", \
"BSP_INDICATE_RCV_OK\n\r", \
"BSP_INDICATE_RCV_ERROR\n\r", \
"BSP_INDICATE_FATAL_ERROR\n\r", \
"BSP_INDICATE_ALERT_0\n\r", \
"BSP_INDICATE_ALERT_1\n\r", \
"BSP_INDICATE_ALERT_2\n\r", \
"BSP_INDICATE_ALERT_3\n\r", \
"BSP_INDICATE_ALERT_OFF\n\r", \
"BSP_INDICATE_USER_STATE_OFF\n\r", \
"BSP_INDICATE_USER_STATE_0\n\r", \
"BSP_INDICATE_USER_STATE_1\n\r", \
"BSP_INDICATE_USER_STATE_2\n\r", \
"BSP_INDICATE_USER_STATE_3\n\r", \
"BSP_INDICATE_USER_STATE_ON\n\r" \
}

See BSP indication states for a list of how these states are indicated for the PCA10028 board and the PCA10031 dongle.

#define BSP_INIT_BUTTONS   (1 << 1)

This bit enables buttons during initialization (bsp_init).

#define BSP_INIT_LED   (1 << 0)

This bit enables LEDs during initialization (bsp_init).

#define BSP_INIT_NONE   0

Types of BSP initialization.

This define specifies the type of initialization without support for LEDs and buttons (bsp_init).

#define BSP_INIT_UART   (1 << 2)

This bit enables UART during initialization (bsp_init).

Typedef Documentation

typedef void(* bsp_event_callback_t)(bsp_event_t)

BSP module event callback function type.

Upon an event in the BSP module, this callback function will be called to notify the application about the event.

Parameters
[in]bsp_event_tBSP event type.

Enumeration Type Documentation

BSP events.

Note
Events from BSP_EVENT_KEY_0 to BSP_EVENT_KEY_LAST are by default assigned to buttons.
Enumerator
BSP_EVENT_NOTHING 

This will unassign button from event.

BSP_EVENT_KEY_0 

This event is by default assigned to BSP_BUTTON_0 (only if this button is present).

BSP_EVENT_KEY_1 

This event is by default assigned to BSP_BUTTON_1 (only if this button is present).

BSP_EVENT_KEY_2 

This event is by default assigned to BSP_BUTTON_2 (only if this button is present).

BSP_EVENT_KEY_3 

This event is by default assigned to BSP_BUTTON_3 (only if this button is present).

BSP_EVENT_KEY_4 

This event is by default assigned to BSP_BUTTON_4 (only if this button is present).

BSP_EVENT_KEY_5 

This event is by default assigned to BSP_BUTTON_5 (only if this button is present).

BSP_EVENT_KEY_6 

This event is by default assigned to BSP_BUTTON_6 (only if this button is present).

BSP_EVENT_KEY_7 

This event is by default assigned to BSP_BUTTON_7 (only if this button is present).

BSP indication states.

See BSP indication states for a list of how these states are indicated for the PCA10028 board and the PCA10031 dongle.

Enumerator
BSP_INDICATE_IDLE 

See BSP_INDICATE_IDLE.

BSP_INDICATE_SCANNING 

See BSP_INDICATE_SCANNING.

BSP_INDICATE_ADVERTISING 

See BSP_INDICATE_ADVERTISING.

BSP_INDICATE_ADVERTISING_WHITELIST 

See BSP_INDICATE_ADVERTISING_WHITELIST.

BSP_INDICATE_ADVERTISING_SLOW 

See BSP_INDICATE_ADVERTISING_SLOW.

BSP_INDICATE_ADVERTISING_DIRECTED 

See BSP_INDICATE_ADVERTISING_DIRECTED.

BSP_INDICATE_BONDING 

See BSP_INDICATE_BONDING.

BSP_INDICATE_CONNECTED 

See BSP_INDICATE_CONNECTED.

BSP_INDICATE_SENT_OK 

See BSP_INDICATE_SENT_OK.

BSP_INDICATE_SEND_ERROR 

See BSP_INDICATE_SEND_ERROR.

BSP_INDICATE_RCV_OK 

See BSP_INDICATE_RCV_OK.

BSP_INDICATE_RCV_ERROR 

See BSP_INDICATE_RCV_ERROR.

BSP_INDICATE_FATAL_ERROR 

See BSP_INDICATE_FATAL_ERROR.

BSP_INDICATE_ALERT_0 

See BSP_INDICATE_ALERT_0.

BSP_INDICATE_ALERT_1 

See BSP_INDICATE_ALERT_1.

BSP_INDICATE_ALERT_2 

See BSP_INDICATE_ALERT_2.

BSP_INDICATE_ALERT_3 

See BSP_INDICATE_ALERT_3.

BSP_INDICATE_ALERT_OFF 

See BSP_INDICATE_ALERT_OFF.

BSP_INDICATE_USER_STATE_OFF 

See BSP_INDICATE_USER_STATE_OFF.

BSP_INDICATE_USER_STATE_0 

See BSP_INDICATE_USER_STATE_0.

BSP_INDICATE_USER_STATE_1 

See BSP_INDICATE_USER_STATE_1.

BSP_INDICATE_USER_STATE_2 

See BSP_INDICATE_USER_STATE_2.

BSP_INDICATE_USER_STATE_3 

See BSP_INDICATE_USER_STATE_3.

BSP_INDICATE_USER_STATE_ON 

See BSP_INDICATE_USER_STATE_ON.

Function Documentation

uint32_t bsp_button_is_pressed ( uint32_t  button,
bool *  p_state 
)

Function for checking buttons states.

This function checks if the button is pressed. If the button ID iss out of range, the function returns false.

Parameters
[in]buttonButton ID to check.
[in]p_stateThis variable will store the information whether the specified button is pressed (true) or not.
Return values
NRF_SUCCESSIf the button state was successfully read.
uint32_t bsp_buttons_enable ( uint32_t  buttons)

Function for enabling specified buttons (others are disabled).

This function enables the specified buttons and configures them to be scanned. All other buttons are disabled (inactive).

Parameters
[in]buttonsButtons to be enabled, encoded as bits (bit 0 = button 0, bit 1 = button 1, etc).
Return values
NRF_SUCCESSIf the buttons were successfully enabled.
uint32_t bsp_buttons_state_get ( uint32_t *  p_buttons_state)

Function for getting buttons states.

This function allows to get the state of all buttons.

Parameters
[in]p_buttons_stateThis variable will store buttons state. Button 0 state is represented by bit 0 (1=pressed), Button 1 state by bit 1, and so on.
Return values
NRF_SUCCESSIf buttons state was successfully read.
uint32_t bsp_event_to_button_assign ( uint32_t  button,
bsp_event_t  event 
)

Function for assigning specific event to button.

This function allows redefinition of standard events assigned to buttons. To unassign events, provide the event @ ref BSP_EVENT_NOTHING.

Parameters
[in]buttonButton ID to be redefined.
[in]eventEvent to be assigned to button.
Return values
NRF_SUCCESSIf the event was successfully assigned to button.
NRF_ERROR_INVALID_PARAMIf the button ID was invalid.
uint32_t bsp_indication_set ( bsp_indication_t  indicate)

Function for configuring indicators to required state.

This function indicates the required state by means of LEDs (if enabled).

Note
Alerts are indicated independently.
Parameters
[in]indicateState to be indicated.
Return values
NRF_SUCCESSIf the state was successfully indicated.
NRF_ERROR_NO_MEMIf the internal timer operations queue was full.
NRF_ERROR_INVALID_STATEIf the application timer module has not been initialized, or internal timer has not been created.
uint32_t bsp_indication_text_set ( bsp_indication_t  indicate,
const char *  p_text 
)

Function for configuring indicators to required state.

This function indicates the required state by means of LEDs (if enabled) and UART (if enabled).

Note
Alerts are indicated independently.
Parameters
[in]indicateState to be indicated.
[in]p_textText to be output on UART.
Return values
NRF_SUCCESSIf the state was successfully indicated.
NRF_ERROR_NO_MEMIf the internal timer operations queue was full.
NRF_ERROR_INVALID_STATEIf the application timer module has not been initialized, or timer has not been created.
uint32_t bsp_init ( uint32_t  type,
uint32_t  ticks_per_100ms,
bsp_event_callback_t  callback 
)

Function for initializing BSP.

The function initializes the board support package to allow state indication and button reaction. Default events are assigned to buttons.

Note
Before calling this function, you must initiate the following required modules:
Parameters
[in]typeType of peripherals used.
[in]ticks_per_100msNumber of RTC ticks for 100 ms.
[in]callbackFunction to be called when button press/event is detected.
Return values
NRF_SUCCESSIf the BSP module was successfully initialized.
NRF_ERROR_INVALID_STATEIf the application timer module has not been initialized.
NRF_ERROR_NO_MEMIf the maximum number of timers has already been reached.
NRF_ERROR_INVALID_PARAMIf GPIOTE has too many users.
NRF_ERROR_INVALID_STATEIf button or GPIOTE has not been initialized.