Archived
1
0
This repo is archived. You can view files and clone it, but cannot push or open issues or pull requests.
keybrd/src/Port_ShiftRegs.cpp

40 line
974 B
C++

#include "Port_ShiftRegs.h"
Port_ShiftRegs::Port_ShiftRegs(const uint8_t slaveSelect) : slaveSelect(slaveSelect)
{
pinMode(slaveSelect, OUTPUT);
}
/* begin() should be called once from sketch setup().
Initializes shift register's shift/load pin.
*/
void Port_ShiftRegs::begin()
{
digitalWrite(slaveSelect, HIGH);
SPI.begin();
}
/* writeLow() sets pin output LOW.
pin is bit pattern, where pin being set is 1.
*/
void Port_ShiftRegs::writeLow(const uint8_t pin)
{
outputVal &= ~pin; //set pin output to low
digitalWrite(slaveSelect, LOW);
SPI.transfer(outputVal);
digitalWrite (slaveSelect, HIGH);
}
/* writeHigh() sets pin output HIGH.
pin is bit pattern, where pin being set is 1.
*/
void Port_ShiftRegs::writeHigh(const uint8_t pin)
{
outputVal |= pin; //set pin output to high
digitalWrite(slaveSelect, LOW);
SPI.transfer(outputVal);
digitalWrite (slaveSelect, HIGH);
}