2 Codes zusammenfügen

OP #6058782
Lesenswert?

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
Lesenswert?

> 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.
Gast #6058830
Lesenswert?

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
}
#6059030
Lesenswert?

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
Lesenswert?

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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren