Zeitsteuerung- keinen Plan

Ich weiß, Ferndiagnose sind unmöglich, deswegen hier nochmal der geänderte Sketch und die Fehlermeldung:

Exit Status 1
scalar object ´interval´requires one element in initializer

ich habe bei "unsigned long interval" die ganzen Zeiten eingefügt, laut agmue. Aber ich hab ja nicht mal ne Ahnung ob das die richtige Zeile war?

byte ledPin = 11;
boolean value = HIGH;
unsigned long previousMillis = 0;
unsigned long interval = {500,1000,4000,200,111};

void setup()
{
pinMode(ledPin, OUTPUT);
}

void loop()
{

if (millis() - previousMillis > interval) {
previousMillis = millis();

value = !value;

digitalWrite(ledPin, value);
}
}

Ralf

michael_x:
Das Raten bei nichtssagenden Posts haben wir alle im Selbststudium gelernt, da habe ich keinen Volkshochschul-Kurs für gefunden. ...
Ansonsten gilt: Fehlermeldungen sind besser als gar nichts. Haben oft sogar schwer verständlichen aber immerhin lesbaren Text.

Fehlermeldungen kann man obendrein sogar posten (was mittlerweile ja geschehen ist)!

Die Zeile, in der Du die Zahlen eingefügt hast, war die Falsche Richtige. Das sagt Dir die IDE (zumindest die, die ich kenne) nicht nur mit der von Dir genannten Fehlermeldung, sondern mit Zeilennummer :wink:

Vergleiche doch mal die „Vorgabe“ mit dem, was Du geändert hast

Gruß

Gregor

Ja, die Zeilennummer ist rosa unterlegt, deswegen war es sicher die falsche Zeile. Aber es war die einzige mit "unsigned Long interval", dewegen habe ich die Ziffern dort eingefügt.

Ralf

interval ist ein Array. Schau dir an wie man auf Array Elemente zugreift

Wobei agmue auch nicht ausgeführt hat wie genau das gedacht ist. Als Zeiten für unterschiedliche Pins? Unterschiedliche Schaltzeiten für einen Pin?

Eine richtige Konfiguration erreicht man mit einem struct aus Pin, letzter Zeit und Intervall. Dann kann man ein Array aus structs anlegen und darüber mit einer for-Schleife iterieren. Unterschiedliche An- und Aus-Zeiten für den jeweiligen Pin gehen so auch.

autoralf:
Ja, die Zeilennummer ist rosa unterlegt, deswegen war es sicher die falsche Zeile. Aber es war die einzige mit "unsigned Long interval", dewegen habe ich die Ziffern dort eingefügt.

Und auf die Idee, dass ein Tippfehler das Problem sein könnte, kommst Du ohne Hilfe nicht?!

Gruß

Gregor

Gut, waren die eckigen Klammern nicht gesetzt, jetzt ist folgende Zeile rosa unterlegt:

if (millis() - previousMillis > interval) {

und folgende Fehlermeldung:

exit status 1
ISO C++ forbids comparison between pointer and integer [-fpermissive]

Ralf

Du hast erkannt wie man ein Array deklariert aber immer noch nicht wie man darauf zugreift?

Wobei ein Array hier unsinnig ist, wenn man dann eine einfache if-Abfrage verwendet. Damit das was bringt muss der Code generell anders strukturiert werden.

autoralf:
ISO C++ forbids comparison between pointer and integer [-fpermissive]

  1. Übersetze das
  2. Verstehe das
  3. Entferne den Fehler
  4. Lerne, dass Programmieren zu einem großen Teil daraus besteht, Fehler zu verstehen, sie zu beseitigen und nur dann zu posten, wenn Du DANN nicht weiterkommst.

Ich glaube, ich gehe eine rauchen.

Gregor

Punkt 1 hab ich so übersetzt, C++ verbietet den Vergleich zwischen der Hinweisadresse und einer ganzen Zahl.
Das ist aber der einzige Punkt, dann hört es auf...
Ich hab keine Ahnung...

Ich hoffe, Du hast genug Kippen, könnte ne längere Aktion mit mir werden... :wink:

Ralf

Array Variablen sind Zeiger auf das erste Element. "interval" ist daher ein Zeiger.

autoralf:
Ich hoffe, Du hast genug Kippen, könnte ne längere Aktion mit mir werden... :wink:

Nein, es wird eine kurze Aktion. Ich bin aus diesem Thread raus.

Gruß

Gregor

agmue sollte erklären wie er sich das mit dem Array gedacht hat :slight_smile:

Serenifly:
agmue sollte erklären wie er sich das mit dem Array gedacht hat :slight_smile:

Das Bett ruft ganz laut, daher kurz: Der TO fragt nach mehreren Zeiten, die in ein Array gespeichert, dann mittels if (millis() - previousMillis > interval[k]) darauf zugreifen und k im Bereich 0 bis 4 variieren.

Wenn Du eine bessere, leichter zu vermittelnde Idee hast, nur zu. Ich habe mich möglicherweise beim TO etwas verschätzt. :sleeping:

Test_Forum.ino (559 Bytes)

Guten Morgen Gemeinde,

agmue, ja Du scheinst recht zu haben, Ihr alle habt mein Level überschätzt, ich hab die Zusammenhänge einfach noch nicht begriffen. Nun werde ich Euch mit diesem Thread nicht länger nerven, hier kommen wir zu keinem Ergebnis, ich werde mir die Bücher und Unterlagen in Ruhe zu Gemüte führen und selber mit Beispiel-Sketches versuchen hinter die Struktur zu gelangen. Vielleicht macht´s ja "klick".

Einen schönen Tag allen

Ralf

Ich drücke Dir die Daumen, daß es "klick" macht, kommt manchmal ganz unverhofft. :slight_smile: Hier schaue ich hin und wieder nach, wenn ich was suche.