button3  2.1.0.0
Main Page

Button 3 click

PRVIH_PAR_RECENICA_SA_PRODUCT_PAGE_DA_ISPRATE_CELINU

[click Product page](CLICK_PRODUCT_PAGE_LINK)


Click library

  • Author : Stefan Filipovic
  • Date : Jun 2024.
  • Type : I2C type

Software Support

We provide a library for the Button 3 Click as well as a demo application (example), developed using MikroElektronika compilers. The demo can run on all the main MikroElektronika development boards.

Package can be downloaded/installed directly from NECTO Studio Package Manager(recommended way), downloaded from our LibStock™ or found on Mikroe github account.

Library Description

This library contains API for Button 3 Click driver.

Standard key functions :

Example key functions :

Example Description

This example demonstrates the use of Button 3 click board by toggling a button LED and its switch state on a button press.

The demo application is composed of two sections :

Application Init

Initializes the driver and performs the click default configuration.

void application_init ( void )
{
log_cfg_t log_cfg;
button3_cfg_t button3_cfg;
LOG_MAP_USB_UART( log_cfg );
log_init( &logger, &log_cfg );
log_info( &logger, " Application Init " );
// Click initialization.
button3_cfg_setup( &button3_cfg );
BUTTON3_MAP_MIKROBUS( button3_cfg, MIKROBUS_1 );
if ( I2C_MASTER_ERROR == button3_init( &button3, &button3_cfg ) )
{
log_error( &logger, " Communication init." );
for ( ; ; );
}
if ( BUTTON3_ERROR == button3_default_cfg ( &button3 ) )
{
log_error( &logger, " Default configuration." );
for ( ; ; );
}
log_info( &logger, " Application Task " );
log_printf ( &logger, " Press button to change switch state\r\n\n" );
log_printf ( &logger, " RED SWITCH OFF\r\n\n" );
log_printf ( &logger, " GREEN SWITCH OFF\r\n\n" );
log_printf ( &logger, " BLUE SWITCH OFF\r\n\n" );
}

Application Task

Toggles a button LED and its switch state on a button press and displays the state on the USB UART.

void application_task ( void )
{
static uint8_t red_switch_state = BUTTON3_SWITCH_OFF;
static uint8_t green_switch_state = BUTTON3_SWITCH_OFF;
static uint8_t blue_switch_state = BUTTON3_SWITCH_OFF;
uint8_t switch_state = BUTTON3_SWITCH_OFF;
{
if ( ( BUTTON3_OK == button3_get_red_button ( &button3, &switch_state ) ) &&
( BUTTON3_BUTTON_PRESSED == switch_state ) )
{
button3_toggle_red_led ( &button3 );
red_switch_state ^= BUTTON3_SWITCH_ON;
if ( BUTTON3_SWITCH_ON == red_switch_state )
{
log_printf ( &logger, " RED SWITCH ON\r\n\n" );
}
else
{
log_printf ( &logger, " RED SWITCH OFF\r\n\n" );
}
}
if ( ( BUTTON3_OK == button3_get_green_button ( &button3, &switch_state ) ) &&
( BUTTON3_BUTTON_PRESSED == switch_state ) )
{
green_switch_state ^= BUTTON3_SWITCH_ON;
if ( BUTTON3_SWITCH_ON == green_switch_state )
{
log_printf ( &logger, " GREEN SWITCH ON\r\n\n" );
}
else
{
log_printf ( &logger, " GREEN SWITCH OFF\r\n\n" );
}
}
if ( ( BUTTON3_OK == button3_get_blue_button ( &button3, &switch_state ) ) &&
( BUTTON3_BUTTON_PRESSED == switch_state ) )
{
blue_switch_state ^= BUTTON3_SWITCH_ON;
if ( BUTTON3_SWITCH_ON == blue_switch_state )
{
log_printf ( &logger, " BLUE SWITCH ON\r\n\n" );
}
else
{
log_printf ( &logger, " BLUE SWITCH OFF\r\n\n" );
}
}
Delay_ms ( 100 );
}
}

The full application code, and ready to use projects can be installed directly from NECTO Studio Package Manager(recommended way), downloaded from our LibStock™ or found on Mikroe github account.

Other Mikroe Libraries used in the example:

  • MikroSDK.Board
  • MikroSDK.Log
  • Click.Button3

Additional notes and informations

Depending on the development board you are using, you may need USB UART click, USB UART 2 Click or RS232 Click to connect to your PC, for development systems with no UART to USB interface available on the board. UART terminal is available in all MikroElektronika compilers.


button3_get_green_button
err_t button3_get_green_button(button3_t *ctx, uint8_t *state)
Button 3 get green button function.
BUTTON3_SWITCH_OFF
#define BUTTON3_SWITCH_OFF
Button 3 switch state setting.
Definition: button3.h:118
button3_cfg_t
Button 3 Click configuration object.
Definition: button3.h:186
button3_get_int_pin
uint8_t button3_get_int_pin(button3_t *ctx)
Button 3 get INT pin function.
button3_toggle_green_led
err_t button3_toggle_green_led(button3_t *ctx)
Button 3 toggle green led function.
application_task
void application_task(void)
Definition: main.c:69
button3_get_blue_button
err_t button3_get_blue_button(button3_t *ctx, uint8_t *state)
Button 3 get blue button function.
BUTTON3_PIN_STATE_LOW
#define BUTTON3_PIN_STATE_LOW
Button 3 pin logic state setting.
Definition: button3.h:111
BUTTON3_ERROR
@ BUTTON3_ERROR
Definition: button3.h:205
button3_init
err_t button3_init(button3_t *ctx, button3_cfg_t *cfg)
Button 3 initialization function.
BUTTON3_OK
@ BUTTON3_OK
Definition: button3.h:204
BUTTON3_BUTTON_PRESSED
#define BUTTON3_BUTTON_PRESSED
Button 3 button state setting.
Definition: button3.h:125
button3_get_red_button
err_t button3_get_red_button(button3_t *ctx, uint8_t *state)
Button 3 get red button function.
button3_toggle_red_led
err_t button3_toggle_red_led(button3_t *ctx)
Button 3 toggle red led function.
button3_cfg_setup
void button3_cfg_setup(button3_cfg_t *cfg)
Button 3 configuration object setup function.
application_init
void application_init(void)
Definition: main.c:29
button3_default_cfg
err_t button3_default_cfg(button3_t *ctx)
Button 3 default configuration function.
BUTTON3_SWITCH_ON
#define BUTTON3_SWITCH_ON
Definition: button3.h:119
BUTTON3_MAP_MIKROBUS
#define BUTTON3_MAP_MIKROBUS(cfg, mikrobus)
MikroBUS pin mapping.
Definition: button3.h:152
button3_t
Button 3 Click context object.
Definition: button3.h:166
button3_toggle_blue_led
err_t button3_toggle_blue_led(button3_t *ctx)
Button 3 toggle blue led function.