Arduino funktion void

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
GeekJoan
Admin
Inlägg: 10642
Blev medlem: 26 maj 2003, 15:59:27
Ort: Solna

Arduino funktion void

Inlägg av GeekJoan »

Ibland när jag kollar på exempelkod så ser jag saker som jag inte begriper.

Ex.

Kod: Markera allt

void loop() {
  theaterChase(strip.Color(127, 127, 127), 50); // White
  theaterChase(strip.Color(127,   0,   0), 50); // Red
  theaterChase(strip.Color(  0,   0, 127), 50); // Blue

  rainbow(20);
  rainbowCycle(20);
  theaterChaseRainbow(50);
}
Om vi tar rainbow(20); så är det (20) som jag inte förstår innebörden av. Först trodde jag att det var kör den här funktionen 20 gånger, men om jag skriver 20 på en egen funktion så får jag felmeddelande.
Kodexemplet kommer från Adafruits NeoPixel testkod.
Användarvisningsbild
Icecap
Inlägg: 26105
Blev medlem: 10 januari 2005, 14:52:15
Ort: Aabenraa, Danmark

Re: Arduino funktion void

Inlägg av Icecap »

Det betyder att "rainbow" får värdet 20 att leka med.

Den funktion kan vara definierat som följer:
void rainbow(int Value);

Det betyder:
rainbow är en funktion som inte ger tillbaka något värde (första "void") men som begär ett värde att jobba med (int Value).

I rainbow() kan man t.ex. skriva:

Kod: Markera allt

void rainbow(int Value)
  {
  while(Value)
    {
    ... // Do whatever needs to be done
    }
  }
Användarvisningsbild
GeekJoan
Admin
Inlägg: 10642
Blev medlem: 26 maj 2003, 15:59:27
Ort: Solna

Re: Arduino funktion void

Inlägg av GeekJoan »

Humm...

Här är funktionen:

Kod: Markera allt

void rainbow(uint8_t wait) {
  uint16_t i, j;

  for(j=0; j<256; j++) {
    for(i=0; i<strip.numPixels(); i++) {
      strip.setPixelColor(i, Wheel((i+j) & 255));
    }
    strip.show();
    delay(wait);
  }
}
Så du menar att (20) stoppas in i wait.
SeniorLemuren
Inlägg: 7779
Blev medlem: 26 maj 2009, 12:20:37
Ort: Kristinehamn

Re: Arduino funktion void

Inlägg av SeniorLemuren »

Japp. 20 kommer att stoppas in i delay(wait); så den blir delay(20);
Skriv svar