Forum
Pico Programmierung klappt nicht so recht II (Elektronik)
Ah, ich sehe, der Adafruit-Treiber verwaltet auch die I2C-Adresse.
Vielleicht lässt sich der Compiler doch noch überlisten. Dieser tipparbeitsparende workaround könnte funktionieren, zumindest kompiliert er:
Adafruit_PWMServoDriver pwmDriver0 = Adafruit_PWMServoDriver(0x40);
Adafruit_PWMServoDriver pwmDriver2 = Adafruit_PWMServoDriver(0x41);
#define IC(i, t) LED i = {LED(t, 0), LED(t, 1), LED(t, 2), LED(t, 3), LED(t, 4), LED(t, 5) };
IC(leds[], &pwmDriver0);
IC(leds0[], &pwmDriver0);
IC(leds2[], &pwmDriver2);
void setDevice(LED dev[]) {
for (int x = 0; x < sizeof(leds); x++) {
leds[x] = dev[x];
}
}
Aufgerufen wird die Funktion z.B. mit:
setDevice(leds2);
Ich persönlich würde allerdings den Zugriff über ein zusätzliches Pointer-Array bevorzugen, statt jedesmal den ganzen Arrayinhalt umzuschaufeln.
Ob dieser Hack funktioniert, kann ich mangels passender Hardware leider nicht testen.
Gruß
grindstone
PS: Wieso soll die LED-Klasse eigentlich keinen angepassten Constructor bekommen?
--
Es ist unter der Würde eines Technikers, die Gebrauchsanweisung zu lesen!
Gesamter Thread: