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);
我正在使用我的 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);