C 对库对象的引用

C reference to library object

我正在使用我的 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.
}

感谢您的帮助

由于您想使用 class Adafruit_NeoPixel 的不同对象 (hours, minutes, seconds) 多次调用函数 showTime ,因此您可以使用以下签名:

void showTime(int iShowTime, Adafruit_NeoPixel *pObj);

因此,现在 showTime 需要指向 class Adafruit_NeoPixel 的任何有效对象的指针。

showTime中你可以调用class Adafruit_NeoPixel的member_functions如下:

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);