keybrd library is an open source library for creating custom-keyboard firmware.
Du kannst nicht mehr als 25 Themen auswählen Themen müssen mit entweder einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.
Dieses Repo ist archiviert. Du kannst Dateien sehen und es klonen, kannst aber nicht pushen oder Issues/Pull-Requests öffnen.

Port_MCP23S18.h 1.2KB

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