keybrd library is an open source library for creating custom-keyboard firmware.
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
Это архивный репозиторий. Вы можете его клонировать или просматривать файлы, но не вносить изменения или открывать задачи/запросы на слияние.

12345678910111213141516171819202122232425262728293031
  1. #ifndef PORT_MCP23S18_H
  2. #define PORT_MCP23S18_H
  3. #include "Port_MCP23S17.h"
  4. /* Port_MCP23S18 has not been tested.
  5. write pins are connected to matrix Row (strobe pin) or LED.
  6. readPins are connected to matrix column to read which keys are pressed.
  7. Port_MCP23S18 can only be active low (Scanner_IOE::activeState = LOW).
  8. Open-drain active high would not work because pull down resistors have no effect on sink.
  9. https://en.wikipedia.org/wiki/Open_collector
  10. Use LED_PortOpenDrain class for indicator LEDs.
  11. Example instantiation:
  12. const uint8_t IOE_ADDR = 0x20; //MCP23S18 address pin grounded
  13. Port_MCP23S18 portB(IOE_ADDR, 1, 0); //all pins are set to output for strobes and LEDs
  14. Port_MCP23S18 portA(IOE_ADDR, 0, 1<<0 | 1<<1 ); //pin 0 and pin 1 are set to input for reading,
  15. //remaining pins can be used for LEDs
  16. Diode orientation
  17. ----------------
  18. Diode orientation is explained in keybrd_library_user_guide.md > Diode orientation
  19. */
  20. class Port_MCP23S18 : public Port_MCP23S17
  21. {
  22. public:
  23. Port_MCP23S18(const uint8_t deviceAddr, const uint8_t portNum, const uint8_t readPins)
  24. : Port_MCP23S17(deviceAddr, portNum, readPins) {}
  25. };
  26. #endif