Go Down

Topic: Zaehler in neuen Prozess überwachen, brauche hilfe (Read 991 times) previous topic - next topic

2000y

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);

    }
    [/list]
    DANKE

    Spirou

    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
    --
    "All parts should go together without forcing. ...
    If you can't get them together

    2000y

    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.

    :'(

    Udo Klein

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

    Gruß, Udo
    Check out my experiments http://blog.blinkenlight.net

    2000y

    DANKE...

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


    Pumbaa

    #5
    Mar 17, 2010, 09:54 am Last Edit: Mar 17, 2010, 09:58 am by willich Reason: 1
    Eben. Haben schon viele.
    So viele, dass einige dazu Bibliotheken geschrieben haben, damit du es einfacher hast.
    Die heißen dann:
    Timing
    Millis

    ::)




    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.

    Go Up