keybrd library is an open source library for creating custom-keyboard firmware.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.

PortRead_MCP23S17.cpp 719B

1234567891011121314151617181920212223
  1. #include "PortRead_MCP23S17.h"
  2. /*
  3. PortRead_MCP23S17::begin() is not needed because port direction is already configured to input by default.
  4. SPI bus is configured in PortWrite_MCP23S17::begin().
  5. */
  6. /*
  7. returns port value
  8. */
  9. uint8_t PortRead_MCP23S17::read()
  10. {
  11. uint8_t portState; //bit wise
  12. //slower clock
  13. digitalWrite(SS, LOW); //enable Slave Select
  14. SPI.transfer(port.ADDR << 1 | 1); //read command
  15. SPI.transfer(port.num + 0x12); //register address to read data from
  16. portState = SPI.transfer(0); //save the data (0 is dummy data to send)
  17. digitalWrite(SS, HIGH); //disable Slave Select
  18. return portState;
  19. }