Joystick#


Introduction#

The SI91x joystick driver is a platform-level software module responsible for managing the control of joystick. All joystick functions are called through the generic driver.


Configuration#

The sl_joystick_state_t enumeration defines the states of the joystick data acquisition, either disabled or enabled. This allows for controlling when joystick input is actively monitored. The sl_joystick_position_t This enumeration defines the possible positions of the joystick, including not pressed, center, north, east, south, and west. These positions correspond to the physical orientation of the joystick and can be used to determine the direction or action indicated by the joystick's current position.


Usage#

The common functions include the following:

sl_si91x_joystick_init initialises the joystick. Sets the operation mode and initialises the ADC channel.

sl_si91x_joystick_get_position can be implemented by the application if required. This function returns the position corresponding to the physical orientation of the joystick. sl_si91x_joystick_start and sl_si91x_joystick_stop both can be implemented by the application. These functions are used to start and stop the data acquisition from the joystick respectively.

Enumerations#

enum
SL_JOYSTICK_NONE
SL_JOYSTICK_C
SL_JOYSTICK_N
SL_JOYSTICK_E
SL_JOYSTICK_S
SL_JOYSTICK_W
}

Enumeration for finding the position of the Joystick.

enum
SL_JOYSTICK_DISABLED
SL_JOYSTICK_ENABLED
}

Enumeration for the Joystick state (ENABLE/DISABLE) enum.

Functions#

sl_status_t

Initialize the Joystick.

sl_status_t
sl_si91x_joystick_get_position(sl_joystick_state_t state, sl_joystick_position_t *pos)

Getting the direction/position of Joystick.

sl_status_t
sl_si91x_joystick_start(sl_joystick_state_t state)

Start/Enable the Joystick.

sl_status_t
sl_si91x_joystick_stop(sl_joystick_state_t state)

Stop/Disable the Joystick.

Enumeration Documentation#

sl_joystick_position_t#

sl_joystick_position_t

Enumeration for finding the position of the Joystick.

Enumerator
SL_JOYSTICK_NONE

Not pressed.

SL_JOYSTICK_C

Center.

SL_JOYSTICK_N

North.

SL_JOYSTICK_E

East.

SL_JOYSTICK_S

South.

SL_JOYSTICK_W

West.


Definition at line 58 of file components/device/silabs/si91x/mcu/drivers/hardware_drivers/sl_joystick/inc/sl_si91x_joystick.h

sl_joystick_state_t#

sl_joystick_state_t

Enumeration for the Joystick state (ENABLE/DISABLE) enum.

Enumerator
SL_JOYSTICK_DISABLED

Joystick data acquisition is disabled.

SL_JOYSTICK_ENABLED

Joystick data acquisition is enabled.


Definition at line 68 of file components/device/silabs/si91x/mcu/drivers/hardware_drivers/sl_joystick/inc/sl_si91x_joystick.h

Function Documentation#

sl_si91x_joystick_init#

sl_status_t sl_si91x_joystick_init (void )

Initialize the Joystick.

Parameters
N/A

ADC will configure here to read the different voltage based on different Joystick position.

Returns

  • If successful

    • SL_STATUS_OK (0x0000) - Success


Definition at line 85 of file components/device/silabs/si91x/mcu/drivers/hardware_drivers/sl_joystick/inc/sl_si91x_joystick.h

sl_si91x_joystick_get_position#

sl_status_t sl_si91x_joystick_get_position (sl_joystick_state_t state, sl_joystick_position_t * pos)

Getting the direction/position of Joystick.

Parameters
[in]state

: Joystick enable/disable ( sl_joystick_state_t )

[out]pos

: position of joystick. ( sl_joystick_position_t)

Returns

  • Error code as follow:

    • SL_STATUS_OK (0x0000) - Success

    • SL_STATUS_NOT_READY (0x0003) - Module is not ready for requested operation.


Definition at line 102 of file components/device/silabs/si91x/mcu/drivers/hardware_drivers/sl_joystick/inc/sl_si91x_joystick.h

sl_si91x_joystick_start#

sl_status_t sl_si91x_joystick_start (sl_joystick_state_t state)

Start/Enable the Joystick.

Parameters
[in]state

: Joystick enable/disable. ( sl_joystick_state_t )

Returns

  • Error code as follow:

    • SL_STATUS_OK (0x0000) - Success

    • SL_STATUS_ABORT (0x0006) - Operation aborted.


Definition at line 116 of file components/device/silabs/si91x/mcu/drivers/hardware_drivers/sl_joystick/inc/sl_si91x_joystick.h

sl_si91x_joystick_stop#

sl_status_t sl_si91x_joystick_stop (sl_joystick_state_t state)

Stop/Disable the Joystick.

Parameters
[in]state

: Joystick enable/disable. ( sl_joystick_state_t )

Returns

  • Error code as follow:

    • SL_STATUS_OK (0x0000) - Success

    • SL_STATUS_BUSY (0x0004) - Module is busy.


Definition at line 131 of file components/device/silabs/si91x/mcu/drivers/hardware_drivers/sl_joystick/inc/sl_si91x_joystick.h