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 / HTTP Request Marc2014 2 56 Heute 09:05
Letzter Beitrag: amithlon
  Ein als "const" deklariertes Array übergeben Retian 5 126 08.11.2016 18:39
Letzter Beitrag: Tommy56
  String zusammensetzen Mathias 13 550 01.09.2016 21:15
Letzter Beitrag: Mathias
  String-Array füllen? torsten_156 9 451 08.07.2016 20:07
Letzter Beitrag: amithlon
  String in EEPROM Speichern BennIY 2 415 27.06.2016 10:23
Letzter Beitrag: BennIY
  Messwerte in Array speichern ArduinoMega2560 2 419 07.06.2016 16:30
Letzter Beitrag: SkobyMobil
  Rechnen mit float und unsigned long Rudi 3 306 03.06.2016 12:41
Letzter Beitrag: hotsystems
  String - Buchstabenposition auswerten scritch 5 662 01.04.2016 16:25
Letzter Beitrag: rkuehle
  String nach UTF16 konvertieren (UTF-16) ThoEngel 0 301 20.02.2016 19:22
Letzter Beitrag: ThoEngel
  array von Php --> Arduino zu senden (ethernet) Mourti 0 447 27.01.2016 22:11
Letzter Beitrag: Mourti

Gehe zu:


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