37#ifndef DRIVER_PCF8575_H
38#define DRIVER_PCF8575_H
154#define DRIVER_PCF8575_LINK_INIT(HANDLE, STRUCTURE) memset(HANDLE, 0, sizeof(STRUCTURE))
162#define DRIVER_PCF8575_LINK_IIC_INIT(HANDLE, FUC) (HANDLE)->iic_init = FUC
170#define DRIVER_PCF8575_LINK_IIC_DEINIT(HANDLE, FUC) (HANDLE)->iic_deinit = FUC
178#define DRIVER_PCF8575_LINK_IIC_READ_COMMAND(HANDLE, FUC) (HANDLE)->iic_read_cmd = FUC
186#define DRIVER_PCF8575_LINK_IIC_WRITE_COMMAND(HANDLE, FUC) (HANDLE)->iic_write_cmd = FUC
194#define DRIVER_PCF8575_LINK_DELAY_MS(HANDLE, FUC) (HANDLE)->delay_ms = FUC
202#define DRIVER_PCF8575_LINK_DEBUG_PRINT(HANDLE, FUC) (HANDLE)->debug_print = FUC
uint8_t pcf8575_deinit(pcf8575_handle_t *handle)
close the chip
struct pcf8575_handle_s pcf8575_handle_t
pcf8575 handle structure definition
uint8_t pcf8575_set_addr_pin(pcf8575_handle_t *handle, pcf8575_address_t addr_pin)
set the address pin
uint8_t pcf8575_write(pcf8575_handle_t *handle, pcf8575_pin_t pin, pcf8575_pin_level_t level)
write the pin
uint8_t pcf8575_read(pcf8575_handle_t *handle, pcf8575_pin_t pin, pcf8575_pin_level_t *level)
read the pin
uint8_t pcf8575_init(pcf8575_handle_t *handle)
initialize the chip
pcf8575_address_t
pcf8575 address enumeration definition
pcf8575_pin_t
pcf8575 pin enumeration definition
pcf8575_pin_level_t
pcf8575 pin enumeration definition
struct pcf8575_info_s pcf8575_info_t
pcf8575 information structure definition
uint8_t pcf8575_info(pcf8575_info_t *info)
get chip's information
uint8_t pcf8575_get_addr_pin(pcf8575_handle_t *handle, pcf8575_address_t *addr_pin)
get the address pin
uint8_t pcf8575_set_reg(pcf8575_handle_t *handle, uint8_t *buf, uint16_t len)
set the chip register
uint8_t pcf8575_get_reg(pcf8575_handle_t *handle, uint8_t *buf, uint16_t len)
get the chip register
pcf8575 handle structure definition
void(* delay_ms)(uint32_t ms)
void(* debug_print)(const char *const fmt,...)
uint8_t(* iic_init)(void)
uint8_t(* iic_read_cmd)(uint8_t addr, uint8_t *buf, uint16_t len)
uint8_t(* iic_deinit)(void)
uint8_t(* iic_write_cmd)(uint8_t addr, uint8_t *buf, uint16_t len)
pcf8575 information structure definition
float supply_voltage_max_v
char manufacturer_name[32]
float supply_voltage_min_v