Archived
1
0

rename Scanner_ShiftRegsPISOSingleRow to Scanner_ShiftRegsRead, Scanner_ShiftRegsPISOMultiRow to Scanner_ShiftRegsReadStrobed

This commit is contained in:
wolfv6 2016-11-02 15:28:58 -06:00
parent d9465be221
commit 5404ae451c
5 changed files with 23 additions and 23 deletions

View File

@ -1,9 +1,9 @@
#include "Scanner_ShiftRegsPISOSingleRow.h" #include "Scanner_ShiftRegsRead.h"
/* constructor /* constructor
Parameter strobeOn is not used. Parameter strobeOn is not used.
*/ */
Scanner_ShiftRegsPISOSingleRow::Scanner_ShiftRegsPISOSingleRow(const bool strobeOn, Scanner_ShiftRegsRead::Scanner_ShiftRegsRead(const bool strobeOn,
const uint8_t slaveSelect, const uint8_t byte_count) const uint8_t slaveSelect, const uint8_t byte_count)
: slaveSelect(slaveSelect), byte_count(byte_count) : slaveSelect(slaveSelect), byte_count(byte_count)
{ {
@ -12,7 +12,7 @@ Scanner_ShiftRegsPISOSingleRow::Scanner_ShiftRegsPISOSingleRow(const bool strobe
/* init() is called once for each row from Row constructor. /* init() is called once for each row from Row constructor.
*/ */
void Scanner_ShiftRegsPISOSingleRow::init(const uint8_t strobePin) void Scanner_ShiftRegsRead::init(const uint8_t strobePin)
{ {
//empty function //empty function
} }
@ -20,7 +20,7 @@ void Scanner_ShiftRegsPISOSingleRow::init(const uint8_t strobePin)
/* begin() should be called once from sketch setup(). /* begin() should be called once from sketch setup().
Initializes shift register's shift/load pin. Initializes shift register's shift/load pin.
*/ */
void Scanner_ShiftRegsPISOSingleRow::begin() void Scanner_ShiftRegsRead::begin()
{ {
SPI.begin(); SPI.begin();
digitalWrite(slaveSelect, HIGH); digitalWrite(slaveSelect, HIGH);
@ -31,7 +31,7 @@ Parameter strobePin is not used.
No strobe pin is needed, the shift register is wired so the strobe is effectivley always "on". No strobe pin is needed, the shift register is wired so the strobe is effectivley always "on".
Bit patterns are 1 bit per key. Bit patterns are 1 bit per key.
*/ */
read_pins_t Scanner_ShiftRegsPISOSingleRow::scan(const uint8_t strobePin) read_pins_t Scanner_ShiftRegsRead::scan(const uint8_t strobePin)
{ {
read_pins_t readState = 0; //bits, 1 means key is pressed, 0 means released read_pins_t readState = 0; //bits, 1 means key is pressed, 0 means released

View File

@ -7,18 +7,18 @@
#include <SPI.h> #include <SPI.h>
#include <ScannerInterface.h> #include <ScannerInterface.h>
/* Scanner_ShiftRegsPISOSingleRow reads shift registers. /* Scanner_ShiftRegsRead reads shift registers.
This was tested on 74HC165 shift registers, which are Parallel-In-Serial-Out (PISO). This was tested on 74HC165 shift registers, which are Parallel-In-Serial-Out (PISO).
Upto 4 shift registers can be in a daisy chained for a total of 32 read pins. Upto 4 shift registers can be in a daisy chained for a total of 32 read pins.
Example instantiation: Example instantiation:
Row row_R0(scanner_R, 0, ptrsKeys_R0, sizeof(ptrsKeys_R0)/sizeof(*ptrsKeys_R0)); Row row_R0(scanner_R, 0, ptrsKeys_R0, sizeof(ptrsKeys_R0)/sizeof(*ptrsKeys_R0));
Scanner_ShiftRegsPISOSingleRow scanner_R(HIGH, SS, 4); Scanner_ShiftRegsRead scanner_R(HIGH, SS, 4);
The Row "strobePin" parameter is ignored. The Row "strobePin" parameter is ignored.
In the above example, the "strobePin" argument is 0, but it doesn't matter what value is given. In the above example, the "strobePin" argument is 0, but it doesn't matter what value is given.
There are three Scanner_ShiftRegsPISOSingleRow parameters. There are three Scanner_ShiftRegsRead parameters.
"strobeOn" paramter is ignored, but should be active state HIGH or LOW required by ScannerInterface. "strobeOn" paramter is ignored, but should be active state HIGH or LOW required by ScannerInterface.
"slaveSelect" paramter can be any controller pin connected to shift register's SHIFT-LOAD pin. "slaveSelect" paramter can be any controller pin connected to shift register's SHIFT-LOAD pin.
@ -42,13 +42,13 @@ Shift-register parallel-input pins need 10k pull-down resistors grounded.
Switches connect grouned row to parallel-input pins. Switches connect grouned row to parallel-input pins.
Controller's MISO pin is connected to shift register's serial output (QH) pin Controller's MISO pin is connected to shift register's serial output (QH) pin
*/ */
class Scanner_ShiftRegsPISOSingleRow : public ScannerInterface class Scanner_ShiftRegsRead : public ScannerInterface
{ {
private: private:
const uint8_t slaveSelect;//controller pin number connected to shift register 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 const uint8_t byte_count; //number of bytes to read from shift registers
public: public:
Scanner_ShiftRegsPISOSingleRow(const bool strobeOn, Scanner_ShiftRegsRead(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 init(const uint8_t strobePin);
void begin(); void begin();

View File

@ -1,6 +1,6 @@
#include "Scanner_ShiftRegsPISOMultiRow.h" #include "Scanner_ShiftRegsReadStrobed.h"
Scanner_ShiftRegsPISOMultiRow::Scanner_ShiftRegsPISOMultiRow(const bool strobeOn, Scanner_ShiftRegsReadStrobed::Scanner_ShiftRegsReadStrobed(const bool strobeOn,
const uint8_t slaveSelect, const uint8_t byte_count) const uint8_t slaveSelect, const uint8_t byte_count)
: strobeOn(strobeOn), strobeOff(!strobeOn), : strobeOn(strobeOn), strobeOff(!strobeOn),
slaveSelect(slaveSelect), byte_count(byte_count) slaveSelect(slaveSelect), byte_count(byte_count)
@ -11,7 +11,7 @@ Scanner_ShiftRegsPISOMultiRow::Scanner_ShiftRegsPISOMultiRow(const bool strobeOn
/* init() is called once for each row from Row constructor. /* init() is called once for each row from Row constructor.
Configures controller to communicate with shift register matrix. Configures controller to communicate with shift register matrix.
*/ */
void Scanner_ShiftRegsPISOMultiRow::init(const uint8_t strobePin) void Scanner_ShiftRegsReadStrobed::init(const uint8_t strobePin)
{ {
pinMode(strobePin, OUTPUT); pinMode(strobePin, OUTPUT);
} }
@ -19,7 +19,7 @@ void Scanner_ShiftRegsPISOMultiRow::init(const uint8_t strobePin)
/* begin() should be called once from sketch setup(). /* begin() should be called once from sketch setup().
Initializes shift register's shift/load pin. Initializes shift register's shift/load pin.
*/ */
void Scanner_ShiftRegsPISOMultiRow::begin() void Scanner_ShiftRegsReadStrobed::begin()
{ {
digitalWrite(slaveSelect, HIGH); //initialize ??only needed for first scan digitalWrite(slaveSelect, HIGH); //initialize ??only needed for first scan
SPI.begin(); //todo move this to constructor or init() SPI.begin(); //todo move this to constructor or init()
@ -29,7 +29,7 @@ void Scanner_ShiftRegsPISOMultiRow::begin()
strobePin is Arduino pin number connected to this row. strobePin is Arduino pin number connected to this row.
Bit patterns are 1 bit per key. Bit patterns are 1 bit per key.
Scanner_ShiftRegsPISOMultiRow class was tested on two sets of 74HC165 shift registers Scanner_ShiftRegsReadStrobed class was tested on two sets of 74HC165 shift registers
and 74AHC1G126 tri-state buffer chips and 74AHC1G126 tri-state buffer chips
74HC165 is not an SPI device. 74HC165 is not an SPI device.
@ -40,7 +40,7 @@ To use SPI-like protocol, 74HC*126 will high-Z the MISO pin when the slave selec
SPI.beginTransaction() and SPI.endTransaction() are not needed, SPI.beginTransaction() and SPI.endTransaction() are not needed,
but would be needed if trackball uses interrupts. but would be needed if trackball uses interrupts.
*/ */
read_pins_t Scanner_ShiftRegsPISOMultiRow::scan(const uint8_t strobePin) read_pins_t Scanner_ShiftRegsReadStrobed::scan(const uint8_t strobePin)
{ {
read_pins_t readState = 0; //bits, 1 means key is pressed, 0 means released read_pins_t readState = 0; //bits, 1 means key is pressed, 0 means released

View File

@ -7,14 +7,14 @@
#include <SPI.h> #include <SPI.h>
#include <ScannerInterface.h> #include <ScannerInterface.h>
/* Scanner_ShiftRegsPISOMultiRow reads shift registers. /* Scanner_ShiftRegsReadStrobed reads shift registers.
This was tested on 74HC165 shift registers, which are Parallel-In-Serial-Out (PISO). This was tested on 74HC165 shift registers, which are Parallel-In-Serial-Out (PISO).
Shift registers can be daisy chained for a total of 32 read pins. Shift registers can be daisy chained for a total of 32 read pins.
Example instantiation: Example instantiation:
Scanner_ShiftRegsPISOMultiRow scanner_R(HIGH, SS, 4); Scanner_ShiftRegsReadStrobed scanner_R(HIGH, SS, 4);
There are three Scanner_ShiftRegsPISOMultiRow parameters. There are three Scanner_ShiftRegsReadStrobed parameters.
"strobeOn" paramter is active state HIGH or LOW. "strobeOn" paramter is active state HIGH or LOW.
"slaveSelect" paramter can be any controller pin connected to shift register's SHIFT-LOAD pin. "slaveSelect" paramter can be any controller pin connected to shift register's SHIFT-LOAD pin.
@ -37,7 +37,7 @@ Shift-register parallel-input pins need 10k pull-down resistors grounded.
Orient diodes with cathode (banded end) towards the read pins. Orient diodes with cathode (banded end) towards the read pins.
Controller's MISO pin is connected to shift register's serial output (QH) pin Controller's MISO pin is connected to shift register's serial output (QH) pin
*/ */
class Scanner_ShiftRegsPISOMultiRow : public ScannerInterface class Scanner_ShiftRegsReadStrobed : public ScannerInterface
{ {
private: private:
const bool strobeOn; //logic level of strobe on, active state HIGH or LOW const bool strobeOn; //logic level of strobe on, active state HIGH or LOW
@ -45,7 +45,7 @@ class Scanner_ShiftRegsPISOMultiRow : public ScannerInterface
const uint8_t slaveSelect;//controller pin number connected to shift register 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 const uint8_t byte_count; //number of bytes to read from shift registers
public: public:
Scanner_ShiftRegsPISOMultiRow(const bool strobeOn, Scanner_ShiftRegsReadStrobed(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 init(const uint8_t strobePin);
virtual void begin(); virtual void begin();

View File

@ -17,7 +17,7 @@ Tested on Teensy LC and two 74HC165 shift registers.
#include <Row.h> #include <Row.h>
//Right matrix //Right matrix
#include <Scanner_ShiftRegsPISOSingleRow.h> #include <Scanner_ShiftRegsRead.h>
// =============== CONFIGURATION =============== // =============== CONFIGURATION ===============
ScanDelay scanDelay(9000); ScanDelay scanDelay(9000);
@ -50,7 +50,7 @@ uint8_t readPinCount_L = sizeof(readPins_L)/sizeof(*readPins_L);
Scanner_uC scanner_L(LOW, readPins_L, readPinCount_L); //active LOW Scanner_uC scanner_L(LOW, readPins_L, readPinCount_L); //active LOW
// --------------- RIGHT SCANNER --------------- // --------------- RIGHT SCANNER ---------------
Scanner_ShiftRegsPISOSingleRow scanner_R(HIGH, 10, 2); //active HIGH Scanner_ShiftRegsRead scanner_R(HIGH, 10, 2); //active HIGH
// =================== ROWS ==================== // =================== ROWS ====================
// ----------------- LEFT ROWS ----------------- // ----------------- LEFT ROWS -----------------