expand10  2.0.0.0
Main Page

Expand 10 click

<PRVIH_PAR_RECENICA_SA_PRODUCT_PAGE_DA_ISPRATE_CELINU>

[click Product page](<CLICK_PRODUCT_PAGE_LINK>)


Click library

  • Author : Stefan Filipovic
  • Date : Aug 2021.
  • Type : I2C type

Software Support

We provide a library for the Expand10 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 Expand10 Click driver.

Standard key functions :

Example key functions :

  • expand10_set_pin_direction This function sets the direction of the selected pins.
    err_t expand10_set_pin_direction ( expand10_t *ctx, uint8_t direction, uint8_t port, uint8_t pin_mask );
  • expand10_set_pin_value This function sets the value of the selected pins.
    err_t expand10_set_pin_value ( expand10_t *ctx, uint8_t port, uint8_t clr_mask, uint8_t set_mask );
  • expand10_read_port_value This function reads the value of the selected port input pins.
    err_t expand10_read_port_value ( expand10_t *ctx, uint8_t port, uint8_t *data_out );

Example Description

This example demonstrates the use of Expand 10 click board.

The demo application is composed of two sections :

Application Init

Initializes the driver and performs the click default configuration which sets the first two ports as output and the third port as input with pull-down enabled.

void application_init ( void )
{
log_cfg_t log_cfg;
expand10_cfg_t expand10_cfg;
// Logger initialization.
LOG_MAP_USB_UART( log_cfg );
log_cfg.level = LOG_LEVEL_DEBUG;
log_cfg.baud = 115200;
log_init( &logger, &log_cfg );
log_info( &logger, " Application Init " );
// Click initialization.
expand10_cfg_setup( &expand10_cfg );
EXPAND10_MAP_MIKROBUS( expand10_cfg, MIKROBUS_1 );
err_t init_flag = expand10_init( &expand10, &expand10_cfg );
if ( I2C_MASTER_ERROR == init_flag )
{
log_error( &logger, " Application Init Error. " );
log_info( &logger, " Please, run program again... " );
for ( ; ; );
}
init_flag = expand10_default_cfg ( &expand10 );
if ( EXPAND10_ERROR == init_flag )
{
log_error( &logger, " Default Config Error. " );
log_info( &logger, " Please, run program again... " );
for ( ; ; );
}
log_info( &logger, " Application Task " );
}

Application Task

Sets the pins of the first two ports and then reads and displays the status of all ports on the USB UART approximately once per second.

void application_task ( void )
{
uint8_t port_value = 0;
for ( uint16_t pin_num = EXPAND10_PIN_0_MASK; pin_num <= EXPAND10_PIN_7_MASK; pin_num <<= 1 )
{
expand10_set_all_pins_value( &expand10, pin_num );
expand10_read_port_value( &expand10, EXPAND10_PORT_0, &port_value );
log_printf( &logger, " Status P0 (output): 0x%.2X\r\n", ( uint16_t ) port_value );
expand10_read_port_value( &expand10, EXPAND10_PORT_1, &port_value );
log_printf( &logger, " Status P1 (output): 0x%.2X\r\n", ( uint16_t ) port_value );
expand10_read_port_value( &expand10, EXPAND10_PORT_2, &port_value );
log_printf( &logger, " Status P2 (input) : 0x%.2X\r\n\r\n", ( uint16_t ) port_value );
Delay_ms( 1000 );
}
}

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.Expand10

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.


expand10_set_pin_direction
err_t expand10_set_pin_direction(expand10_t *ctx, uint8_t direction, uint8_t port, uint8_t pin_mask)
Expand 10 set pin direction function.
EXPAND10_PORT_2
#define EXPAND10_PORT_2
Definition: expand10.h:145
EXPAND10_MAP_MIKROBUS
#define EXPAND10_MAP_MIKROBUS(cfg, mikrobus)
MikroBUS pin mapping.
Definition: expand10.h:210
EXPAND10_PORT_0
#define EXPAND10_PORT_0
Expand 10 port values.
Definition: expand10.h:143
expand10_t
Expand 10 Click context object.
Definition: expand10.h:224
EXPAND10_PIN_7_MASK
#define EXPAND10_PIN_7_MASK
Definition: expand10.h:136
expand10_cfg_setup
void expand10_cfg_setup(expand10_cfg_t *cfg)
Expand 10 configuration object setup function.
application_task
void application_task(void)
Definition: main.c:63
expand10_default_cfg
err_t expand10_default_cfg(expand10_t *ctx)
Expand 10 default configuration function.
expand10_set_pin_value
err_t expand10_set_pin_value(expand10_t *ctx, uint8_t port, uint8_t clr_mask, uint8_t set_mask)
Expand 10 set pin value function.
expand10_set_all_pins_value
err_t expand10_set_all_pins_value(expand10_t *ctx, uint8_t set_mask)
Expand 10 set all pins value function.
EXPAND10_PORT_1
#define EXPAND10_PORT_1
Definition: expand10.h:144
application_init
void application_init(void)
Definition: main.c:29
expand10_read_port_value
err_t expand10_read_port_value(expand10_t *ctx, uint8_t port, uint8_t *data_out)
Expand 10 read port value function.
expand10_init
err_t expand10_init(expand10_t *ctx, expand10_cfg_t *cfg)
Expand 10 initialization function.
expand10_cfg_t
Expand 10 Click configuration object.
Definition: expand10.h:244
EXPAND10_ERROR
@ EXPAND10_ERROR
Definition: expand10.h:263
EXPAND10_PIN_0_MASK
#define EXPAND10_PIN_0_MASK
Definition: expand10.h:129