wolfv6 пре 7 година
родитељ
комит
07a66b0505

+ 1
- 1
src/DebouncerInterface.h Прегледај датотеку

@@ -3,7 +3,7 @@

#include <config_keybrd.h>

/*
/*
debounce() takes rawSignal and returns debounced signal. Signals are bit paterns.
*/
class DebouncerInterface

+ 5
- 5
src/Port_MCP23S17.cpp Прегледај датотеку

@@ -4,18 +4,18 @@

MCP23S17 SPI interface is 10 MHz max.
The electrical limitation to bus speed is bus capacitance and the length of the wires involved.
Longer wires require lower clock speeds.
Longer wires require lower clock speeds.
*/
uint8_t Port_MCP23S17::transfer(const uint8_t command, const uint8_t registerAddr,
const uint8_t data)
const uint8_t data)
{
uint8_t portState; //bit pattern

SPI.beginTransaction( SPISettings(5000000, MSBFIRST, SPI_MODE0) ); //control SPI bus, 5 MHz
digitalWrite(SS, LOW); //enable Slave Select
SPI.transfer(command); //write or read command
SPI.transfer(registerAddr); //register address to write data to
portState = SPI.transfer(data); //write data, read portState
SPI.transfer(command); //write or read command
SPI.transfer(registerAddr); //register address to write data to
portState = SPI.transfer(data); //write data, read portState
digitalWrite(SS, HIGH); //disable Slave Select
SPI.endTransaction();


+ 1
- 1
src/Port_PCA9655E.cpp Прегледај датотеку

@@ -4,7 +4,7 @@
PCA9655E supports I2C SCL Clock Frequencies: 100 kHz, 400 kHz, 1000 kHz (Datasheet page 1 & 6)
The electrical limitation to bus speed is bus capacitance and the length of the wires involved.
Longer wires require lower clock speeds.
Longer wires require lower clock speeds.
http://playground.arduino.cc/Main/WireLibraryDetailedReference > Wire.setclock()
*/
void Port_PCA9655E::beginProtocol()

+ 2
- 2
src/Row.cpp Прегледај датотеку

@@ -4,9 +4,9 @@
init() is called once for each row, to set scanner's uC strobePin to output.
*/
Row::Row(ScannerInterface& refScanner, const uint8_t strobePin,
Key* const ptrsKeys[], const uint8_t keyCount)
Key* const ptrsKeys[], const uint8_t keyCount)
: refScanner(refScanner), strobePin(strobePin),
ptrsKeys(ptrsKeys), keyCount(keyCount), debounced(0)
ptrsKeys(ptrsKeys), keyCount(keyCount), debounced(0)
{
refScanner.init(strobePin);
}

+ 1
- 1
src/Row.h Прегледај датотеку

@@ -31,7 +31,7 @@ class Row
read_pins_t debounced; //bit pattern, state of keys after debouncing, 1=pressed, 0=released
public:
Row(ScannerInterface& refScanner, const uint8_t strobePin,
Key* const ptrsKeys[], const uint8_t keyCount);
Key* const ptrsKeys[], const uint8_t keyCount);
virtual void process();
};
#endif

+ 2
- 2
src/Scanner_IOE.h Прегледај датотеку

@@ -22,9 +22,9 @@ class Scanner_IOE : public ScannerInterface
PortInterface& refPortRead; //the IC's read port
public:
Scanner_IOE(const bool strobeOn,
PortInterface &refPortWrite, PortInterface& refPortRead)
PortInterface &refPortWrite, PortInterface& refPortRead)
: strobeOn(strobeOn), strobeOff(!strobeOn),
refPortWrite(refPortWrite), refPortRead(refPortRead) {}
refPortWrite(refPortWrite), refPortRead(refPortRead) {}
void init(const uint8_t strobePin);
void begin();
read_pins_t scan(const uint8_t strobePin);

+ 3
- 3
src/Scanner_ShiftRegsPISOMultiRow.cpp Прегледај датотеку

@@ -5,7 +5,7 @@
Scanner_ShiftRegsPISOMultiRow::Scanner_ShiftRegsPISOMultiRow(const bool strobeOn,
const uint8_t slaveSelect, const uint8_t byte_count)
: strobeOn(strobeOn), strobeOff(!strobeOn),
slaveSelect(slaveSelect), byte_count(byte_count)
slaveSelect(slaveSelect), byte_count(byte_count)
{
pinMode(slaveSelect, OUTPUT);
}
@@ -39,8 +39,8 @@ read_pins_t Scanner_ShiftRegsPISOMultiRow::scan(const uint8_t strobePin)
delayMicroseconds(3); //time to stablize voltage

//read all the column pins
digitalWrite(slaveSelect, LOW); //load parallel inputs to the register
digitalWrite(slaveSelect, HIGH); //shift the data toward a serial output
digitalWrite(slaveSelect, LOW); //load parallel inputs to the register
digitalWrite(slaveSelect, HIGH); //shift the data toward a serial output
SPI.transfer(&readState, byte_count);

//strobe row off

+ 2
- 3
src/Scanner_ShiftRegsPISOMultiRow.h Прегледај датотеку

@@ -43,12 +43,11 @@ class Scanner_ShiftRegsPISOMultiRow : public ScannerInterface
private:
const bool strobeOn; //logic level of strobe on, active state HIGH or LOW
const bool strobeOff; //logic level of strobe off, complement of strobeOn
const uint8_t slaveSelect; //controller's pin number that is
// connected to shift register's SHIFT-LOAD pin
const uint8_t slaveSelect;//controller pin number connected to shift register SHIFT-LOAD pin
const uint8_t byte_count; //number of bytes to read from shift registers
public:
Scanner_ShiftRegsPISOMultiRow(const bool strobeOn,
const uint8_t slaveSelect, const uint8_t byte_count);
const uint8_t slaveSelect, const uint8_t byte_count);
virtual void init(const uint8_t strobePin);
virtual void begin();
virtual read_pins_t scan(const uint8_t strobePin);

+ 2
- 3
src/Scanner_ShiftRegsPISOSingleRow.h Прегледај датотеку

@@ -45,12 +45,11 @@ Controller's MISO pin is connected to shift register's serial output (QH) pin
class Scanner_ShiftRegsPISOSingleRow : public ScannerInterface
{
private:
const uint8_t slaveSelect; //controller's pin number that is
// connected to shift register's SHIFT-LOAD pin
const uint8_t slaveSelect;//controller pin number connected to shift register SHIFT-LOAD pin
const uint8_t byte_count; //number of bytes to read from shift registers
public:
Scanner_ShiftRegsPISOSingleRow(const bool strobeOn,
const uint8_t slaveSelect, const uint8_t byte_count);
const uint8_t slaveSelect, const uint8_t byte_count);
void init(const uint8_t strobePin);
void begin();
virtual read_pins_t scan(const uint8_t strobePin);

+ 1
- 1
tutorials/keybrd_3a_multi-layerHold/keybrd_3a_multi-layerHold.ino Прегледај датотеку

@@ -13,7 +13,7 @@ Each cell in the table's body represents a key.
Each element in a cell represents a scancode or layer code.
The keys in row 0 have two characters each, one character for each layer.
Letters 'a' and 'b' are on the normal layer. Symbols '-' and '=' are on the fn layer.
"fn" is a layer key. Holding the fn key down makes it the active layer.
"fn" is a layer key. Holding the fn key down makes it the active layer.
Releasing the fn key restores the normal layer.
*/
// ################## GLOBAL ###################

+ 2
- 1
tutorials/keybrd_4b_split_keyboard_with_shift_registers/keybrd_4b_split_keyboard_with_shift_registers.ino Прегледај датотеку

@@ -68,7 +68,8 @@ Row row_L1(scanner_L, 1, ptrsKeys_L1, KEY_COUNT_L1);
Key* ptrsKeys_R0[] = { &s_6, &s_5, &s_4, &s_3, //shift register on right
&s_c, &s_d, &s_e, &s_f,
&s_2, &s_1, &s_0, &s_g, //shift register on left
&s_a, &s_b }; //unused input pins are grounded
&s_a, &s_b
}; //unused input pins are grounded
Row row_R0(scanner_R, 0, ptrsKeys_R0, sizeof(ptrsKeys_R0)/sizeof(*ptrsKeys_R0));

// ################### MAIN ####################