- /*
-
- MCP23S08 MODULE
-
- Copyright (C) 2020 by Eddi De Pieri <eddi at depieri dot com>
-
- Adapted from https://github.com/kmpelectronics/Arduino
- Copyright (C) 2016 Plamen Kovandjiev <p.kovandiev@kmpelectronics.eu> & Dimitar Antonov <d.antonov@kmpelectronics.eu>
-
- (ref. https://github.com/kmpelectronics/Arduino/blob/master/ProDinoWiFiEsp/src/PRODINoESP8266/src/KMPDinoWiFiESP.cpp)
-
- */
-
- #pragma once
-
- #ifndef MCP23S08_H
- #define MCP23S08_H
-
- #include "espurna.h"
- #include "libs/BasePin.h"
-
- #if MCP23S08_SUPPORT
-
- constexpr size_t McpGpioPins = 8;
-
- // real hardware pin
- class McpGpioPin final : public BasePin {
- public:
- explicit McpGpioPin(unsigned char pin);
-
- void pinMode(int8_t mode);
- void digitalWrite(int8_t val);
- int digitalRead();
- };
-
- void MCP23S08Setup();
-
- uint8_t MCP23S08ReadRegister(uint8_t address);
- void MCP23S08WriteRegister(uint8_t address, uint8_t data);
-
- void MCP23S08SetDirection(uint8_t pinNumber, uint8_t mode);
- void MCP23S08SetPin(uint8_t pinNumber, bool state);
- bool MCP23S08GetPin(uint8_t pinNumber);
-
- bool mcpGpioValid(unsigned char gpio);
-
- #endif // MCP23S08_SUPPORT == 1
-
- #endif
|