void value not ignored as it ought to be?

Arduino specifieke Software
Berichten: 22
Geregistreerd: 13 Aug 2018, 17:59
Woonplaats: Krimpen

void value not ignored as it ought to be?

Berichtdoor swets » 11 Nov 2021, 23:04

Hoi,

wat betekent dit ?

ik heb de onderstaande functie (heet dat zo?)

als ik van de laatste 3 regels commentaar maakt, werkt hij,
en zie ik de informatie via de serial monitor...

dan roep ik hem in me main lus zo aan:
Mot1(ActualMainX, ActualMainY, ActualMainZ);

maar als ik hem zo aanroep:
Mot1WantedLength = Mot1(ActualMainX, ActualMainY, ActualMainZ);
met die laatste 3 regels geen commentaar, krijg ik dus

error: return-statement with a value, in function returning 'void' [-fpermissive]

return result;

^

exit status 1

void value not ignored as it ought to be


wat doe ik fout?




Code: Alles selecteren

void Mot1(int X, int Y, int Z) {
  // z,y,z uit rekenen van uit main x,y,z
  // x,y,z van hoek 1

  long XCorner1 = -152;
  long yCorner1 = -90;
  long zCorner1 = 137;

  long Mot1lengthY = (yCorner1 - Y) - (WidthBlockBottom / 2);
  long Mot1LengthX = (XCorner1 - X) - (LengthBlockBottom / 2);

  long Mot1LengthL1 = Pythagoras(Mot1lengthY, Mot1LengthX);
  long Mot1lengthz = (zCorner1 - (Z)) - (HighBlock / 2);
  long Mot1LengthL2 = Pythagoras(Mot1LengthL1, Mot1lengthz);

  SerialUSB.print("Length Motor 1 :");
  SerialUSB.print(Mot1LengthL2);
  SerialUSB.print("mm, total Steps :");
  SerialUSB.println(Mot1LengthL2 * StepUnit);

  //long result;
  //result = Mot1LengthL2 * StepUnit;
  //return result;

};

Advertisement

Gebruikers-avatar
Berichten: 241
Geregistreerd: 22 Jan 2013, 16:40

Re: void value not ignored as it ought to be?

Berichtdoor zuid » 12 Nov 2021, 08:42

void kent geen return waarde.
zie voor verdere uitleg: https://www.arduino.cc/en/Reference/FunctionDeclaration

Berichten: 22
Geregistreerd: 13 Aug 2018, 17:59
Woonplaats: Krimpen

Re: void value not ignored as it ought to be?

Berichtdoor swets » 12 Nov 2021, 14:24

ja maar ik snap het niet ...

in de serial monitor zie ik dat er wel warden staan in
SerialUSB.println(Mot1LengthL2 * StepUnit);

dus daarom snap ik niet waarom ik die niet naar buiten kan sturen?
en ook als ik je link door lees, weet ik nog niet wat er fout zou kunnen zijn....?

Berichten: 4067
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: void value not ignored as it ought to be?

Berichtdoor shooter » 12 Nov 2021, 15:16

zet ipv void eens long neer en dan long result weg halen en return result ook.
je maakt een functie en het resultaat is dan wat je terugkrijgt vanuit die functie
net zoals je pythagoras gebruikt.
paul deelen
shooter@home.nl

Berichten: 22
Geregistreerd: 13 Aug 2018, 17:59
Woonplaats: Krimpen

Re: void value not ignored as it ought to be?

Berichtdoor swets » 12 Nov 2021, 16:51

shooter schreef:zet ipv void eens long neer en dan long result weg halen en return result ook.
je maakt een functie en het resultaat is dan wat je terugkrijgt vanuit die functie
net zoals je pythagoras gebruikt.


Ja dat werkt.... Allereerst vroeg ik me af hoe jij wist dat ik een pythagoras functie had, maar omdat ik die aanroep natuurlijk in dat stukje code wat ik gedeeld had......

maar ik had dat stukje pythagoras al tig keer bekeken... ik snapte niet waarom dat wel werkte, en dit niet....:-)

heel erg bedankt.... kan ik weer een beetje verder knoeien....

Terug naar Arduino software

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 24 gasten