arduino zwischendrine zu andren Anweisungen springen und dann weiter machen.

OP #4890422
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
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?
OP #4890599
hmm ok danke dir meinst du das so ?

void setup() {

  pinMode(13, OUTPUT);
  pinMode(10, OUTPUT);

  if(Test LED);
  digitalWrite(10, HIGH = 0;
  delay(1000);
  digitalWrite(10, LOW = 0;
  delay(1000);
}

void loop() {
  digitalWrite(13, HIGH);
  delay(1000);
}
if(Test LED))
  z(=1);
{
  digitalWrite(13, LOW);
  delay(1000);
}
#4890653
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.
OP #4890674
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

Eine eigene Frage? Dieser Thread ist über 9 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.