INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Funktion/Methode mit mehr als einem Ausgangswert
20.10.2015, 09:52 (Dieser Beitrag wurde zuletzt bearbeitet: 20.10.2015 09:56 von Marduino_UNO.)
Beitrag #17
RE: Funktion/Methode mit mehr als einem Ausgangswert
Code:
void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);

}

float InputValue = 2.0;
    typedef struct {
    float aFloat;
    float bFloat;
    float cFloat;
} multiVar;


multiVar myFunc(float inValue) {
    multiVar retVal;
    retVal.aFloat = inValue * 2.0;
    retVal.bFloat = inValue * 3.0;
    retVal.cFloat = inValue * 4.0;
    return retVal;
};

void loop() {
  // put your main code here, to run repeatedly:
   multiVar ArrayValue = myFunc(InputValue);
    
   Serial.println(ArrayValue.aFloat);
   Serial.println(ArrayValue.bFloat);
   Serial.println(ArrayValue.cFloat);
}
Fehlermeldung:
Arduino: 1.7.6 (Windows 7), Platine: "Arduino Uno"

Methode_mehr_Rueckgabewerte.ino:3:1: error: 'multiVar' does not name a type

Fehler beim Kompilieren.

Weiß nicht wie ich die Zeilenangaben mit kopieren soll....
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
20.10.2015, 10:27
Beitrag #18
RE: Funktion/Methode mit mehr als einem Ausgangswert
Hi,
ich habe das ganze jetzt doch mal in eine Arduino IDE gepackt und selbst ausprobiert. Anscheinend hat der verwendete Compiler ein Problem mit de typedef, aber nur bei der Deklaration des Rückgabewerts einer Funktion. Folgendes Coding läuft bei mir ohne Fehler durch:
Code:
void setup() {
   // put your setup code here, to run once:
   Serial.begin(9600);

}

float InputValue = 2.0;

typedef struct multiVar {
     float aFloat;
     float bFloat;
     float cFloat;
} multiVar;


struct multiVar myFunc(float inValue) {
     multiVar retVal;
     retVal.aFloat = inValue * 2.0;
     retVal.bFloat = inValue * 3.0;
     retVal.cFloat = inValue * 4.0;
     return retVal;
};

void loop() {
   // put your main code here, to run repeatedly:
    multiVar ArrayValue = myFunc(InputValue);
    
    Serial.println(ArrayValue.aFloat);
    Serial.println(ArrayValue.bFloat);
    Serial.println(ArrayValue.cFloat);
}

Die Änderungen sind:
1. Explizite Benennung des struct
2. Deklaration des Rückgabewerts von myFunc

Ich habe keine Ahnung, warum multiVar bei Variablendeklarationen/-definitionen als Typ erkannt wird, aber nicht bei Funktionsdeklarationen/-definitionen. Ich vermute da einen Bug.

Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
20.10.2015, 10:30
Beitrag #19
RE: Funktion/Methode mit mehr als einem Ausgangswert
Hi Thorsten,

super das klappt nun bei mir auch! Vielen Dank für Deine Mühe.

Gruß
Marduino_UNO
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  A4988 Driver mit einem Nema 17 Hangloose 3 140 04.09.2016 21:49
Letzter Beitrag: Hangloose
  Arduino lässt sich nicht mehr beschreiben Maxi290997 15 980 07.08.2016 11:40
Letzter Beitrag: Maxi290997
  Funktion mit Parameterübergabe - u8g torsten_156 8 399 22.06.2016 18:53
Letzter Beitrag: Pit
  Kann ich mit einem Arduino ein Gyro für Adroid Simulieren? Demitos 0 411 16.03.2016 18:33
Letzter Beitrag: Demitos
  Ansteuerung von einem Relais mit einem PS2 Controller minigarage 2 338 11.03.2016 15:31
Letzter Beitrag: minigarage
  Funktion in Loop einmalig ausführen Haustechno 4 646 09.03.2016 22:43
Letzter Beitrag: Haustechno
  Bei Tastendruck ein Ausgang mehr dazu.... hannes77 2 986 07.03.2016 20:48
Letzter Beitrag: hannes77
  HC-05 Modul auf Funktion prüfen. arduinofan 2 365 03.02.2016 19:18
Letzter Beitrag: arduinofan
  Eine Funktion vorher definieren ? arduinofan 23 2.021 30.12.2015 08:42
Letzter Beitrag: amithlon
  Wie steuere ich 2 DC Motoren über ein Motorshield mit einem Joystick? Vittelboy 12 5.585 29.12.2015 09:51
Letzter Beitrag: max123

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste