Bug fixes.
This commit is contained in:
parent
690afdbce5
commit
a9c80c2ed5
4 changed files with 33 additions and 28 deletions
16
Matrix.cpp
16
Matrix.cpp
|
@ -1,25 +1,19 @@
|
|||
#include "Matrix.h"
|
||||
|
||||
Matrix::Matrix(uint8_t* columns, bool inverted) {
|
||||
this->columns = columns;
|
||||
this->num_columns = sizeof(columns);
|
||||
this->active_pin = num_columns;
|
||||
Matrix::Matrix(uint8_t* columns, uint8_t num_columns, bool inverted) {
|
||||
this->active_pin = 255; // sentinel value, highest possible 8-bit number
|
||||
this->inverted = inverted;
|
||||
|
||||
for (uint8_t i = 0; i < num_columns; i++) {
|
||||
pinMode(columns[i], OUTPUT);
|
||||
if (inverted) digitalWrite(columns[i], HIGH);
|
||||
else digitalWrite(columns[i], LOW);
|
||||
_disable(columns[i]);
|
||||
}
|
||||
}
|
||||
|
||||
void Matrix::Activate(uint8_t column) {
|
||||
if (column > num_columns) return; // TODO: throw an error here?
|
||||
|
||||
uint8_t pin = columns[column];
|
||||
void Matrix::Activate(uint8_t pin) {
|
||||
if (pin == active_pin) return;
|
||||
|
||||
if (active_pin != num_columns) {
|
||||
if (active_pin != 255) {
|
||||
_disable(active_pin);
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue