Zaehler in neuen Prozess überwachen, brauche hilfe

Will eine Funktion als Extra Prozess aufrufen, die soll also immer aufgerufen werden unabgängig vom Zykluszeit. In anderen Prog. Sprachen zb. in JAVA kann man es als new Thread() aufrufen.

Frage wie kann ich so was in Arduino machen? Habe bis jetzt keine Library gefunden.

Beispiel:

// unabhängig von Zyklus zählen
void zaehler() {
analog = analogRead(0);

if( analog > 300)
z++;
}

void setup() {
lcd.begin(2, 16);
Serial.begin(9600);
}

void loop() {

// hier kommen noch Funktionen die ca. 50 ms brauchen

lcd.print(z);

}

DANKE

Hi 2000y,
schau doch mal im Playground unter
Protothreading, Timing & Millis, ob du da etwas passendes für dich findest.

Ich benutze für fast alle meine Projekte die FSM-Library.

  • Spirou

Spirou - "FSM-Library" blicke ich nicht durch, trotzden DANKE

Noch jemand eine andere Idee?

Es muss doch einfach, wie in anderen sprachen, Funktionen aufrufen zu kennen die außer LOOP ständig aufgerufen werden und dadurch die Ereignisse zu registrieren.

:cry:

Spirou hat sehr richtig auf die Timing + Millis Libs hingewiesen. Schau Dir die mal an. Die "Arduino Sprache" ist übrigens C++.

Gruß, Udo

DANKE...

habe nur mal gehofft, dass jemand schon so was gemacht hat und helfen kann... :-/
bin nämlich unter zeit druck... :-[

Eben. Haben schon viele.
So viele, dass einige dazu Bibliotheken geschrieben haben, damit du es einfacher hast.
Die heißen dann:
Timing
Millis

::slight_smile:

Ansonsten, für deinen Code:
wenn du den Zähler immer, wenn analog über 300 ist raufzählst, und diese Abfrage mit nem Affenzahn läuft, dann wird auch der Zähler mitm Affenzahn laufen. Falls du damit meinst:

"Raufzählen, wenn er 300 übersteigt. Nimmer zählen, bis er wieder drunter ist. Und dann wieder eins drauf, wenn er die 300er Marke übersteigt" dann wird das so nicht laufen.
Wenn das nen Maß für die Zeit sein sollen, die er über 300 ist, dann ist der Ansatz doch in die richtige Richtung.