/*
class with pointers to two arrays
https://forum.arduino.cc/t/how-to-pass-an-array-to-a-class-as-an-argument/1275455/5
2024-06-25 by noiasca
code in thread
to be deleted 2024-09
*/
const uint8_t segmentPins[] = { A9, A8, A7, A6, A5, A4, A3, A2 };
const uint8_t digitPins[] = { A0, A1 };
template <size_t nbrDigits> // the number of digits in the LED display
class Segments {
private:
// bits representing segments A through G (and decimal point) for numerals 0-9
const uint8_t numeral[10] = {
//ABCDEFG /dp
0b11111100, // 0
0b01100000, // 1
0b11011010, // 2
0b11110010, // 3
0b01100110, // 4
0b10110110, // 5
0b10111110, // 6
0b11100000, // 7
0b11111110, // 8
0b11110110, // 9
};
const uint8_t *segmentPins;
const uint8_t *digitPins;
public:
Segments(const uint8_t (&segmentPins)[8], const uint8_t (&digitPins)[nbrDigits]) : segmentPins(segmentPins), digitPins(digitPins) {}
void debug() {
Serial.println("segmentPins");
for (size_t i = 0; i < 8; i++ ) {
Serial.println(segmentPins[i]);
}
Serial.print("nbrDigits="); Serial.println(nbrDigits);
Serial.println("digitPins");
for (size_t i = 0; i < nbrDigits; i++) {
Serial.println(digitPins[i]);
}
}
};
Segments <2>myseg(segmentPins, digitPins);
void setup() {
Serial.begin(115200);
myseg.debug();
}
void loop() {
// put your main code here, to run repeatedly:
}
//