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
Konvertierung String Array to INT/Float
28.02.2014, 11:53
Beitrag #1
Konvertierung String Array to INT/Float
Hallo liebes Forum,

folgendes Problem ich bin aktuell dran die Steuerung für einen Kamera Schlitten zu bauen. Soweit funktioniert das auch problemlos, aber an einer Stelle hakt es gewaltig.

Ich deklariere folgenden Array:

String intervall[] = {"1", "2", "3", "4", "5", "6", "7", "8"};
int zaehler_intervall = 2;

über 2 Tasten kann der Benutzer auf dem Display ein Intervall auswählen. Standardmäßig wird dem Benutzer die "3" angezeigt.

lcd.print(intervall[zaehler_intervall]);

ich rufe Praktisch den Inhalt des Index des Arrays ab, das der Benutzer mit 2 Tastern ändern kann.

Soweit funktioniert es wunderbar.

Jetzt geht es darum die Kamera alle x Sekunden auszulösen. Wobei X gleich der Wert ist den man im Array ausgewählt hat, also Standardmäßig 3.

Simulieren tu ich dies zum testen über eine LED

digitalWrite(led_gelb, HIGH);
delay(5000);
digitalWrite(led_gelb, LOW);

so funktioniert es auch wunderbar.

Probiere ich aber jetzt den richtigen Aufruf:

delay(intervall[zaehler_intervall]);

geht es natürlich nicht, da die Funktion Delay einen INT Wert erwartet.

Aber beim Konvertieren bekomme ich immer einen Fehler

int zwischenwert = atoi(intervall[zaehler_intervall]);

"invalid types 'int[int] for array subscript"[/code]

kann mir da irgendjemand auf die Sprünge helfen? Steh da Grade ziemlich auf dem Schlauch :/

Gruß

Chakuza1505
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
28.02.2014, 12:12 (Dieser Beitrag wurde zuletzt bearbeitet: 28.02.2014 12:35 von rkuehle.)
Beitrag #2
RE: Konvertierung String Array to INT/Float
Hallo Chakuza,

ich denke du hast eine globale Variable "intervall" und übergibst diese als Parameter an die Funktion welche dann
Code:
int zwischenwert = atoi(intervall[zaehler_intervall]);
ausführt. Dadurch existieren zwei Variablen mit Namen "intervall", die globale und die lokale in der Funktion. Da die lokale Variable nur einen Wert enthält, du aber über "zaehler_intervall" einen Index aufrufst gehts schief.
Einfache Lösung:
1) der Funktion, die "zwischenwert" berechnet, die Variable "intervall" nicht übergeben, oder
2) der Funktion, die "zwischenwert" berechnet, die Variable "intervall" mit
Code:
void Funktion  (int *intervall)
übergeben. Dann wird nur der Pointer auf das globale Array übergeben.
Grüße Ricardo

Edit: Schreibfehler! richtig muss es
Code:
void Funktion  ( String *intervall)
heißen. Sorry!

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
28.02.2014, 12:38
Beitrag #3
RE: Konvertierung String Array to INT/Float
Hallo Ricardo,

danke für deine schnelle Antwort.

habe den Code jetzt wie folgt geändert

Code:
void fahren(int *intervall)
{
  digitalWrite(led_gelb, HIGH);
  delay(*intervall);
  digitalWrite(led_gelb, LOW);
}
Code:
void ausloesen()
{
  digitalWrite(led_rot, HIGH);
  delay(5000);
  digitalWrite(led_rot, LOW);
  fahren(intervall[zaehler_intervall]);
}

die Funktion ausloesen() wird beim Drücken eines Tasters ausgelöst, nach 5 Sekunden soll dann die Funktion fahren() ausfgerufen werden die dann den Inhalt des Arrays mit übergibt. Leider bekomme ich jetzt die Fehlermeldung:

cannot convert 'String' to 'int*' for argument '1' to 'void fahren(int*)'

vielen Dank schonmal für deine Hilfe Smile

Gruß

Andre
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
28.02.2014, 12:41
Beitrag #4
RE: Konvertierung String Array to INT/Float
Siehe Korrektur / Edit in meinem Post!

Grüße Ricardo

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
06.03.2014, 08:52
Beitrag #5
RE: Konvertierung String Array to INT/Float
Hallo Ricardo,

vielen Dank für deine Hilfe, ich hab es endlich zum laufen gekriegt Smile Die nächste Hürde wird die Belichtungszeit sein die im Array mit "1/4", "1/16" etc. gespeichert ist. Ich werde mal gucken wie weit ich da komme ansonsten meld ich mich nochmal Smile

Gruß

Andre
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  String in tinygps++ einlesen hoko 13 249 Heute 14:27
Letzter Beitrag: Tommy56
  String -> Char *gelöst* Binatone 2 198 31.01.2017 11:08
Letzter Beitrag: Binatone
  Array, SD Read, Write Binär nilsconrad 14 325 25.01.2017 14:28
Letzter Beitrag: nilsconrad
  Speicher Voll, Array zu groß, Display Datenerfassung nilsconrad 31 751 13.01.2017 18:16
Letzter Beitrag: renid55
  ascii string to int array konvertieren renid55 3 193 29.12.2016 11:49
Letzter Beitrag: Tommy56
  String / HTTP Request Marc2014 4 312 23.12.2016 15:42
Letzter Beitrag: Tommy56
  Ein als "const" deklariertes Array übergeben Retian 5 210 08.11.2016 18:39
Letzter Beitrag: Tommy56
  String zusammensetzen Mathias 13 1.040 01.09.2016 21:15
Letzter Beitrag: Mathias
  String-Array füllen? torsten_156 9 642 08.07.2016 20:07
Letzter Beitrag: amithlon
  String in EEPROM Speichern BennIY 2 593 27.06.2016 10:23
Letzter Beitrag: BennIY

Gehe zu:


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