26 #include "LedMatrixDirect.h" 32 void LedMatrixDirect::setGroupPins(
const uint8_t* groupPins) {
33 mGroupPins = groupPins;
38 void LedMatrixDirect::setElementPins(
const uint8_t* elementPins) {
39 mElementPins = elementPins;
45 for (uint8_t group = 0; group < mNumGroups; group++) {
46 uint8_t digitalPin = mGroupPins[group];
47 mHardware->
pinMode(digitalPin, OUTPUT);
50 for (uint8_t element = 0; element < mNumElements; element++) {
51 uint8_t elementPin = mElementPins[element];
52 mHardware->
pinMode(elementPin, OUTPUT);
58 for (uint8_t group = 0; group < mNumGroups; group++) {
59 uint8_t digitalPin = mGroupPins[group];
60 mHardware->
pinMode(digitalPin, INPUT);
62 for (uint8_t element = 0; element < mNumElements; element++) {
63 uint8_t elementPin = mElementPins[element];
64 mHardware->
pinMode(elementPin, INPUT);
68 void LedMatrixDirect::enableGroup(uint8_t group) {
69 writeGroupPin(group, mGroupOn);
72 void LedMatrixDirect::disableGroup(uint8_t group) {
73 writeGroupPin(group, mGroupOff);
76 void LedMatrixDirect::drawElements(uint8_t pattern) {
77 uint8_t elementMask = 0x1;
78 for (uint8_t element = 0; element < mNumElements; element++) {
80 (pattern & elementMask) ? mElementOn : mElementOff;
81 writeElementPin(element, output);
virtual void pinMode(uint8_t pin, uint8_t mode)
Set pin mode.
virtual void configure()
Configure the pins for the given LED wiring.
virtual void digitalWrite(uint8_t pin, uint8_t value)
Write value to pin.
virtual void configure() override
Configure the pins for the given LED wiring.
virtual void finish() override
Turn off the pins by doing the opposite of configure().