Я работаю с моим Arduino, чтобы улучшить мои знания C. Я сделал несколько попыток, но я не могу заставить его работать 🙁
Я надеюсь, что кто-то может помочь мне.
У меня есть разные объекты из библиотеки.
Adafruit_NeoPixel hours = Adafruit_NeoPixel(NUMPIXELS, .....);
Adafruit_NeoPixel minutes = Adafruit_NeoPixel(NUMPIXELS, ....-);
Adafruit_NeoPixel seconds = Adafruit_NeoPixel(NUMPIXELS, .....);
Теперь я хочу несколько раз вызвать функцию с указателем на объявленный объект библиотеки (часы, минуты & секунд => E.G POINTERTOLIB?)
void showTime(int iShowTime, **POINTERTOLIB** )
{
int ones = iShowTime % 24;
//set LEDs according to acutal Time
for (int i=0; i<8; i++)
{
((ones >> i) & 1) ? **POINTERTOLIB** .setPixelColor(i, **POINTERTOLIB** .Color(0,150,0)) : **POINTERTOLIB** .setPixelColor(i, hours.Color(0,0,0));
**POINTERTOLIB** .setBrightness(40);
}
**POINTERTOLIB** .show(); // This sends the updated pixel color to the hardware.
}
Спасибо за вашу помощь
Так как вы хотите вызвать функцию showTime
несколько раз используя разные объекты (hours, minutes, seconds
) из class Adafruit_NeoPixel
тогда вы можете использовать следующую подпись:
void showTime(int iShowTime, Adafruit_NeoPixel *pObj);
Поэтому сейчас showTime
ожидает указатель на любой действительный объект class Adafruit_NeoPixel
,
внутри showTime
Вы можете вызвать member_functions из class Adafruit_NeoPixel
следующее:
pObj->setPixelColor()
pObj->Color().
Ты можешь позвонить showTime
следующее:
showTime(3, &hours); or showTime(3, &minutes);
showTime(3, &hours); or showTime(3, &hours);
showTime(3, &hours); or showTime(3, &seconds);
Других решений пока нет …