2 Codes zusammenfügen

OP #6058782
Guten Abend,
meine Frage bezieht sich auf folgenden Code.

wieso wird void setup2()& void loop2() nicht ausgeführt.

beschreibeung des Ziels:
-ein Relais soll permanent an aus wechseln.
-während ein endoder werte zählt.

int encoder0PinA = 3;
int encoder0PinB = 4;

int messungPin1 = LOW;
int messungPin1Alt = LOW;

int encoderWert = 0;

void setup() {
  pinMode(encoder0PinA, INPUT_PULLUP);
  pinMode(encoder0PinB, INPUT_PULLUP);
  Serial.begin(115200);
}

void loop() {
  messungPin1 = digitalRead(encoder0PinA);
  if ((messungPin1 == HIGH) && (messungPin1Alt == LOW)) {
    if (digitalRead(encoder0PinB) == LOW) {
      encoderWert--;
    } else {
      encoderWert++;
    }
    Serial.println(encoderWert);
  }
  messungPin1Alt = messungPin1;
}
void setup2(){
pinMode(6 ,OUTPUT);
}
void loop2() {
digitalWrite(6, HIGH); //An dieser Stelle würde das Relais einsschalten

delay(1000);//...eine Sekunde warten

digitalWrite(6, LOW); //Und wieder ausschalten

delay(1000); //...und eine Sekunde warten.

}

void setup2()
void loop2()
#6058802
> wieso wird void setup2()& void loop2() nicht ausgeführt.

setup und loop sind festgelegte Funktionsnamen mit ebendiesen 
Bestimmungen.
Der Code wird compiliert und nicht interpretiert.
Du gehst wahrscheinlich von einer Scriptsprache aus, die Top-Down 
interpretiert wird. Da wuerde der Interpreter ggfls. auch ueber setup2 
und loop2 laufen.
Der Compiler wird die "Aufrufe" unten wohl einfach verwerfen bzw. als 
leere Funktionsdefinitionen interpretieren.
Schreib die noetige Funktionalitaet einfach in die vorhandenen setup und 
loop rein.
#6058828
Es scheint immer mehr zum guten Stiel zu gehören, dass man nur den Code 
postet, der einem in den Kram passt.

Der obige Ansatz sollte schon einen ganzen Sack voll Fehlermeldungen 
produzieren und auch deshalb nicht funktionieren.

Oder wie gesagt: Da fehlt was!
Gast #6058830
Mach es so:

1
void setup1()
2
{
3
  ...
4
}
5

6
void loop1()
7
{
8
  ...
9
}
10

11
void setup2()
12
{
13
  ...
14
}
15

16
void look2()
17
{
18
  ...
19
}
20

21
void setup()
22
{
23
  setup1();
24
  setup2();
25
}
26

27
void look()
28
{
29
  loop1();
30
  loop2();
31
}
Gast #6058938
Wolfgang schrieb:
> Ein bißchen anders sieht der schon aus, sonst würde z.B. der Timer für
> millis() nicht laufen.

Was niemanden interessiert und hier völlig unwichtig ist. Aber 
Hauptsache,  von Wolfgang (Gast) weiß wieder etwas besser.
#6059030
Hallo,

da hat der TO nach bestem Wissen einfach 2 Sketche aneinander gefügt.
War zuwenig wissen.
Er hätte jetzt schauen könne, wie in Ablauf bei einen Programm und auch 
bei der Arduino-Version abläuft.
Offenbar hat niemand Lust, ihm grunds#tzliche Fragen "was ist Programm 
und wie läuft es ab" zu erklären.
Selbst ich nicht, obwohl ich manchmal ziemlich Aufwand treibe, um 
jemandem bei einem Problem zu helfen.

Ist ja auch ein generelles Problem wenn man programmieren will.
Ist nichtmal Arduino spezifisch, ein c-Programm, wo ich einfach hinter 
die main() eine 2. kopiere und die in main2() umbenenne, wird auch 
nichts anderes machen.

PS: vom TO hört man erfahrungsgemaäß bei derartigen Fragestellungen dann 
auch nie wieder was...

Gruß aus Berlin
Michael
Gast #6059037
Dyson schrieb:
> Was niemanden interessiert und hier völlig unwichtig ist.

Man kann es auch deutlicher formulieren: Der von der Arduino IDE 
automatisch eingebundene Code sieht eben nicht so aus, wie von Joe F. 
behauptet.

Der Code zeigt das Prinzip, soweit es den Aufruf von Setup() und Loop() 
betrifft - nicht mehr und nicht weniger.

Joe F. schrieb:
> Weil deine Arduino IDE nur diesen Code hier hinzufügt:

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 6 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.