keybrd library is an open source library for creating custom-keyboard firmware.
Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.
Tento repozitář je archivovaný. Můžete prohlížet soubory, klonovat, ale nemůžete nahrávat a vytvářet nové úkoly a požadavky na natažení.

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