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
  Aus char string machen metzgefa 1 205 06.05.2017 15:15
Letzter Beitrag: Tommy56
  Array-Index zu groß: Tückisches Verhalten GuaAck 6 222 05.05.2017 22:03
Letzter Beitrag: Tommy56
  Array mit Serial.read befüllen Gonmaus 4 335 01.05.2017 09:13
Letzter Beitrag: Gonmaus
  String übergeben oOSpikeOo 9 351 28.03.2017 19:47
Letzter Beitrag: georg01
  Array länge oOSpikeOo 4 192 28.03.2017 18:57
Letzter Beitrag: oOSpikeOo
  String in tinygps++ einlesen hoko 17 729 07.03.2017 15:40
Letzter Beitrag: hoko
  String -> Char *gelöst* Binatone 2 371 31.01.2017 11:08
Letzter Beitrag: Binatone
  ascii string to int array konvertieren renid55 3 430 29.12.2016 11:49
Letzter Beitrag: Tommy56
  String / HTTP Request Marc2014 4 472 23.12.2016 15:42
Letzter Beitrag: Tommy56
  Ein als "const" deklariertes Array übergeben Retian 5 325 08.11.2016 18:39
Letzter Beitrag: Tommy56

Gehe zu:


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