arduino zwischendrine zu andren Anweisungen springen und dann weiter machen.

#4890422
Lesenswert?

Hallo
Wie kann ich es am besten machen das der ATMEGA2560 nach Aufgabe A nicht 
Aufgabe B macht sondern zwischendrine Aufgabe Z mache und dann zu 
Aufgabe B springt ?
Ich habe was von Interrupts gelesen die entweder nach zeit oder nach Pin 
Pegel wechsel steuern beides ist nicht ganz was ich mir vorstelle.
Und Z überall einfügen würde schnell den speicher sprengen.

Mal ein beispiel:(ja ich weiß ist müll aber zum zeigen reichts)

void loop() {
 A digitalWrite(xx, HIGH);
 A  delay(1000);

 Wechsel zu Z
 Weiter mit B

 B digitalWrite(xx, LOW);
 B delay(1000);

Wechsel zu Z
Weiter mit C

 C digitalWrite(xx, HIGH);
 C  delay(1000);

 Wechsel zu Z
 Weiter mit D

 D digitalWrite(xx, LOW);
 D delay(1000);
}
void z

Vielen dank.
Gast #4890582
Lesenswert?

DAVID -. schrieb:
> Wie kann ich es am besten machen das der ATMEGA2560 nach Aufgabe A nicht
> Aufgabe B macht sondern zwischendrine Aufgabe Z mache und dann zu
> Aufgabe B springt ?

Du kannst zwischen A und B einfach einen Aufruf von Z einbauen.

Bisher
1
void loop()
2
{
3
  Aufgabe_A();
4
  Aufgabe_B();
5
}

Mit Z
1
void loop()
2
{
3
  Aufgabe_A();
4
  Aufgabe_Z();
5
  Aufgabe_B();
6
}

Was willst du wirklich genau?
#4890653
Lesenswert?

DAVID -. schrieb:
> if(Test LED))
>   z(=1);
> {
>   digitalWrite(13, LOW);
>   delay(1000);
> }

wenn z 1 werden soll dann mache ein Zuweisung so:
z=1;

wenn z wirklich nur die LED anmachen soll dann lasse die LED gleich in 
der ISR angehen dann brauchst du nicht mehr, kein FLAG, kein 
Unterprogramm und keine Abfrage und keinen Sprung, vergiss das doofe 
Delay oder merke dir die Zeit von ON und wenn die abgelaufen ist in der 
loop schalte wieder aus.
#4890674
Lesenswert?

hallo
wie gesagt die LED Sache sollte nur für mich zum verstehen sein gehen 
tut es um was anderes anderes.
Es werden Sensoren abgefragt es werden Spannungen gemessen es werden 
Displays angesteuert und Daten auf ein Ethernet schilt gesendet welches 
kein int Pin rausgeführt hat.
Problem dabei ist aber der ganze Durchlauf dauert um die 10 sek und da 
ist keine sinnvolle Ethernet Verbindung mehr möglich.

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