expand 2.0.0.0
expand.h File Reference

This file contains API for Expand Click driver. More...

#include "drv_digital_out.h"
#include "drv_digital_in.h"
#include "drv_spi_master.h"

Go to the source code of this file.

Data Structures

struct  expand_t
 Click ctx object definition. More...
 
struct  expand_cfg_t
 Click configuration structure definition. More...
 

Macros

#define EXPAND_MAP_MIKROBUS(cfg, mikrobus)
 
#define EXPAND_RETVAL   uint8_t
 
#define EXPAND_OK   0x00
 
#define EXPAND_INIT_ERROR   0xFF
 
#define EXPAND_SPI_DEVICE_OPCODE   0x40
 
#define EXPAND_OPCODE_WRITE   0xFE
 
#define EXPAND_OPCODE_READ   0x01
 
#define EXPAND_SPI_MODULE_POSITION_0   0x00
 
#define EXPAND_SPI_MODULE_POSITION_1   0x02
 
#define EXPAND_SPI_MODULE_POSITION_2   0x04
 
#define EXPAND_SPI_MODULE_POSITION_3   0x06
 
#define EXPAND_SPI_MODULE_POSITION_4   0x08
 
#define EXPAND_SPI_MODULE_POSITION_5   0x0A
 
#define EXPAND_SPI_MODULE_POSITION_6   0x0C
 
#define EXPAND_SPI_MODULE_POSITION_7   0x0E
 
#define EXPAND_PORT_DIRECTION_OUTPUT   0x00
 
#define EXPAND_PORT_DIRECTION_INPUT   0xFF
 
#define EXPAND_IODIRA_BANK1   0x00
 
#define EXPAND_IPOLA_BANK1   0x01
 
#define EXPAND_GPINTENA_BANK1   0x02
 
#define EXPAND_DEFVALA_BANK1   0x03
 
#define EXPAND_INTCONA_BANK1   0x04
 
#define EXPAND_IOCON_BANK1   0x05
 
#define EXPAND_GPPUA_BANK1   0x06
 
#define EXPAND_INTFA_BANK1   0x07
 
#define EXPAND_INTCAPA_BANK1   0x08
 
#define EXPAND_GPIOA_BANK1   0x09
 
#define EXPAND_OLATA_BANK1   0x0A
 
#define EXPAND_IODIRB_BANK1   0x10
 
#define EXPAND_IPOLB_BANK1   0x11
 
#define EXPAND_GPINTENB_BANK1   0x12
 
#define EXPAND_DEFVALB_BANK1   0x13
 
#define EXPAND_INTCONB_BANK1   0x14
 
#define EXPAND_IOCONO_BANK1   0x15
 
#define EXPAND_GPPUB_BANK1   0x16
 
#define EXPAND_INTFB_BANK1   0x17
 
#define EXPAND_INTCAPB_BANK1   0x18
 
#define EXPAND_GPIOB_BANK1   0x19
 
#define EXPAND_OLATB_BANK1   0x1A
 
#define EXPAND_IODIRA_BANK0   0x00
 
#define EXPAND_IODIRB_BANK0   0x01
 
#define EXPAND_IPOLA_BANK0   0x02
 
#define EXPAND_IPOLB_BANK0   0x03
 
#define EXPAND_GPINTENA_BANK0   0x04
 
#define EXPAND_GPINTENB_BANK0   0x05
 
#define EXPAND_DEFVALA_BANK0   0x06
 
#define EXPAND_DEFVALB_BANK0   0x07
 
#define EXPAND_INTCONA_BANK0   0x08
 
#define EXPAND_INTCONB_BANK0   0x09
 
#define EXPAND_IOCON_BANK0   0x0A
 
#define EXPAND_GPPUA_BANK0   0x0C
 
#define EXPAND_GPPUB_BANK0   0x0D
 
#define EXPAND_INTFA_BANK0   0x0E
 
#define EXPAND_INTFB_BANK0   0x0F
 
#define EXPAND_INTCAPA_BANK0   0x10
 
#define EXPAND_INTCAPB_BANK0   0x11
 
#define EXPAND_GPIOA_BANK0   0x12
 
#define EXPAND_GPIOB_BANK0   0x13
 
#define EXPAND_OLATA_BANK0   0x14
 
#define EXPAND_OLATB_BANK0   0x15
 
#define EXPAND_IOCON_BYTE_MODE   0x20
 
#define EXPAND_IOCON_HAEN   0x08
 
#define EXPAND_CN4_PA0   0x01
 
#define EXPAND_CN4_PA1   0x02
 
#define EXPAND_CN4_PA2   0x04
 
#define EXPAND_CN4_PA3   0x08
 
#define EXPAND_CN4_PA4   0x10
 
#define EXPAND_CN4_PA5   0x20
 
#define EXPAND_CN4_PA6   0x40
 
#define EXPAND_CN4_PA7   0x80
 
#define EXPAND_CN5_PB0   0x01
 
#define EXPAND_CN5_PB1   0x02
 
#define EXPAND_CN5_PB2   0x04
 
#define EXPAND_CN5_PB3   0x08
 
#define EXPAND_CN5_PB4   0x10
 
#define EXPAND_CN5_PB5   0x20
 
#define EXPAND_CN5_PB6   0x40
 
#define EXPAND_CN5_PB7   0x80
 
#define EXPAND_CN_START_POSITION   0x01
 
#define EXPAND_INT_ERR   0xFF
 

Functions

void expand_cfg_setup (expand_cfg_t *cfg)
 Config Object Initialization function.
 
EXPAND_RETVAL expand_init (expand_t *ctx, expand_cfg_t *cfg)
 Initialization function.
 
uint8_t expand_read_byte (expand_t *ctx, uint8_t mod_cmd, uint8_t reg_addr)
 Generic read one bayt from register function.
 
void expand_write_byte (expand_t *ctx, uint8_t mod_cmd, uint8_t reg_addr, uint8_t write_data)
 Generic write one bayt to register function.
 
void expand_default_configuration (expand_t *ctx, uint8_t mod_cmd)
 Generic write one bayt to register function.
 
void expand_set_bits (expand_t *ctx, uint8_t mod_cmd, uint8_t reg_addr, uint8_t bit_mask)
 Set register bits function.
 
void expand_clear_bits (expand_t *ctx, uint8_t mod_cmd, uint8_t reg_addr, uint8_t bit_mask)
 Clear register bits function.
 
void expand_toggle_bits (expand_t *ctx, uint8_t mod_cmd, uint8_t reg_addr, uint8_t bit_mask)
 Toggle register bits function.
 
uint8_t expand_read_port_a (expand_t *ctx, uint8_t mod_cmd)
 Read one byte of data from PORTA function.
 
uint8_t expand_read_port_b (expand_t *ctx, uint8_t mod_cmd)
 Read one byte of data from PORTB function.
 
uint16_t expand_read_both_porta (expand_t *ctx, uint8_t mod_cmd)
 Read two byte of data from PORTA & PORTB function.
 
void expand_write_port_a (expand_t *ctx, uint8_t mod_cmd, uint8_t write_data)
 Write one byte of data to register for PORTA function.
 
void expand_clear_bit_port_a (expand_t *ctx, uint8_t mod_cmd, uint8_t bit_mask)
 Clear bit from register for PORTA function.
 
void expand_set_bit_port_a (expand_t *ctx, uint8_t mod_cmd, uint8_t bit_mask)
 Set bit to register for PORTA function.
 
void expand_toggle_bit_port_a (expand_t *ctx, uint8_t mod_cmd, uint8_t bit_mask)
 Toggle bit to register for PORTA function.
 
void expand_write_port_b (expand_t *ctx, uint8_t mod_cmd, uint8_t write_data)
 Write one byte of data to register for PORTB function.
 
void expand_clear_bit_port_b (expand_t *ctx, uint8_t mod_cmd, uint8_t bit_mask)
 Clear bit from register for PORTB function.
 
void expand_set_bit_port_b (expand_t *ctx, uint8_t mod_cmd, uint8_t bit_mask)
 Set bit to register for PORTB function.
 
void expand_toggle_bit_port_b (expand_t *ctx, uint8_t mod_cmd, uint8_t bit_mask)
 Toggle bit to register for PORTB function.
 
void expand_set_direction_port_a (expand_t *ctx, uint8_t mod_cmd, uint8_t write_data)
 Set expander PORTA direction function.
 
void expand_set_input_dir_port_a (expand_t *ctx, uint8_t mod_cmd, uint8_t bit_mask)
 Set expander PORTA input direction function.
 
void expand_set_output_dir_port_a (expand_t *ctx, uint8_t mod_cmd, uint8_t bit_mask)
 Set expander PORTA output direction function.
 
void expand_set_direction_port_b (expand_t *ctx, uint8_t mod_cmd, uint8_t write_data)
 Set expander PORTB direction function.
 
void expand_set_input_dir_port_b (expand_t *ctx, uint8_t mod_cmd, uint8_t bit_mask)
 Set expander PORTB input direction function.
 
void expand_set_output_dir_port_b (expand_t *ctx, uint8_t mod_cmd, uint8_t bit_mask)
 Set expander PORTB output direction function.
 
void expand_set_pull_ups_port_a (expand_t *ctx, uint8_t mod_cmd, uint8_t write_data)
 Set pull-ups of the expander for PORTA pins function.
 
void expand_set_pull_ups_port_b (expand_t *ctx, uint8_t mod_cmd, uint8_t write_data)
 Set pull-ups of the expander for PORTB pins function.
 
void expand_set_potr_a (expand_t *ctx, uint8_t position)
 Active pin by position on PORTA function.
 
void expand_set_potr_b (expand_t *ctx, uint8_t position)
 Active pin by position on PORTB function.
 
void expand_reset (expand_t *ctx)
 Reset function.
 
uint8_t expand_get_interrupt (expand_t *ctx)
 Get state of interrupt pin function.
 

Detailed Description

This file contains API for Expand Click driver.