Lab_interaccio/2019/Artnet-recorder-player/pixelplayer_SD/MCP23008.h

47 lines
1.1 KiB
C
Raw Normal View History

2025-02-25 21:29:42 +01:00
/***************************************************
This is a library for the MCP23008 i2c port expander
****************************************************/
#ifndef MCP23008_H
#define MCP23008_H
#include "Arduino.h"
#define MCP23008_ADDRESS 0x20
#define MCP23008_IODIR 0x00
#define MCP23008_IPOL 0x01
#define MCP23008_GPINTEN 0x02
#define MCP23008_DEFVAL 0x03
#define MCP23008_INTCON 0x04
#define MCP23008_IOCON 0x05
#define MCP23008_GPPU 0x06
#define MCP23008_INTF 0x07
#define MCP23008_INTCAP 0x08
#define MCP23008_GPIO 0x09
#define MCP23008_OLAT 0x0A
#define NO_INTERRUPT 0x00
#endif
class MCP23008 {
public:
void begin(uint8_t addr);
void pinMode(uint8_t mode);
void pinMode(uint8_t pin, uint8_t mode);
void setPullup(uint8_t pullup);
uint8_t read();
uint8_t read(uint8_t pin);
void write(uint8_t values);
void write(uint8_t pin, uint8_t value);
void enableInterrupt(uint8_t pin, uint8_t mode);
void disableInterrupt(uint8_t pin);
private:
uint8_t _i2cAddress;
uint8_t _read(uint8_t addr);
void _write(uint8_t addr, uint8_t data);
};