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
  3 Stück LED 8x8 Matrix via Array ansteuern Bino87 9 310 09.10.2017 19:00
Letzter Beitrag: Tommy56
  pinMode mit array luj1990 6 611 22.07.2017 10:24
Letzter Beitrag: Binary1
  String vergleichen georg01 15 833 18.07.2017 20:35
Letzter Beitrag: Tommy56
  String.charAt() ardun 3 345 02.07.2017 15:28
Letzter Beitrag: Tommy56
  Aus char string machen metzgefa 1 371 06.05.2017 15:15
Letzter Beitrag: Tommy56
  Array-Index zu groß: Tückisches Verhalten GuaAck 6 383 05.05.2017 22:03
Letzter Beitrag: Tommy56
  Array mit Serial.read befüllen Gonmaus 4 504 01.05.2017 09:13
Letzter Beitrag: Gonmaus
  String übergeben oOSpikeOo 9 717 28.03.2017 19:47
Letzter Beitrag: georg01
  Array länge oOSpikeOo 4 362 28.03.2017 18:57
Letzter Beitrag: oOSpikeOo
  String in tinygps++ einlesen hoko 17 1.144 07.03.2017 15:40
Letzter Beitrag: hoko

Gehe zu:


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