Skip to content

daisy::Mcp23017Transport

More...

#include <mcp23x17.h>

Public Classes

Name
struct Config

Public Functions

Name
void Init()
void Init(const Config & config)
I2CHandle::Result WriteReg(MCPRegister reg, uint8_t val)
I2CHandle::Result WriteReg(MCPRegister reg, uint8_t portA, uint8_t portB)
uint8_t ReadReg(MCPRegister reg)
void ReadReg(MCPRegister reg, uint8_t & portA, uint8_t & portB)

Public Attributes

Name
daisy::I2CHandle i2c_
uint8_t i2c_address_
uint8_t timeout

Detailed Description

class daisy::Mcp23017Transport;

Barebones driver for MCP23017 I2C 16-Bit I/O Expander For now it supports only polling approach.

Usage: Mcp23017 mcp; mcp.Init(); mcp.PortMode(MCP23017Port::A, 0xFF); // Inputs mcp.PortMode(MCP23017Port::B, 0xFF); mcp.Read(); mcp.GetPin(2);

Public Functions Documentation

function Init

inline void Init()

function Init

inline void Init(
    const Config & config
)

function WriteReg

inline I2CHandle::Result WriteReg(
    MCPRegister reg,
    uint8_t val
)

function WriteReg

inline I2CHandle::Result WriteReg(
    MCPRegister reg,
    uint8_t portA,
    uint8_t portB
)

function ReadReg

inline uint8_t ReadReg(
    MCPRegister reg
)

function ReadReg

inline void ReadReg(
    MCPRegister reg,
    uint8_t & portA,
    uint8_t & portB
)

Public Attributes Documentation

variable i2c_

daisy::I2CHandle i2c_;

variable i2c_address_

uint8_t i2c_address_;

variable timeout

uint8_t timeout {10};

Updated on 2024-01-03 at 19:41:00 +0000