INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Langes delay - wie macht man das?
27.08.2015, 10:52
Beitrag #9
RE: Langes delay - wie macht man das?
Hallo,

such mal im www unter 'Timer.h'.
Da sind Beispiele drinnen, die zwei unterschiedliche Zeiten ausführen und die Delays fallen somit raus.
Ich versteh sowieso nicht, dass immer diese (für mich) umständliche Sache mit vorher/nachher-millis immer wieder Anwendung findet, egal. Es kann ja jeder wie er mag.

Gruß Franz
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
27.08.2015, 11:21 (Dieser Beitrag wurde zuletzt bearbeitet: 27.08.2015 11:22 von HaWe.)
Beitrag #10
RE: Langes delay - wie macht man das?
zum Lernen für blutige Anfänger nicht ganz verkehrt die millis-Sache, aber ansonsten finde ich sie auch total verquer und unübersichtlich. Ich behelfe mir ebenfalls anders.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
27.08.2015, 19:56
Beitrag #11
RE: Langes delay - wie macht man das?
Zitat:Ich versteh sowieso nicht, dass immer diese (für mich) umständliche Sache mit vorher/nachher-millis immer wieder Anwendung findet
Weil man so mehrere voneinander unabhängige Vorgänge laufen lassen kann, ohne dass die sich gegenseitig beeinflussen (aufeinander warten) und gleichzeitig Schleifenkonstrukte (for, while) im code vermeidet. So kann man eine Art Multitasking mit festem Zeitmultiplexing realisieren.
Stichwort Finite State Machine.

Grüße Ricardo

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
27.08.2015, 22:55 (Dieser Beitrag wurde zuletzt bearbeitet: 27.08.2015 23:01 von HaWe.)
Beitrag #12
RE: Langes delay - wie macht man das?
das ist mir (und ich denke, auch alpenpower) schon klar, aber wir beide machen das mit der timer-lib (bzw ich mit der DueTimer-lib) , indem wir einfach für jedes gewünschte Intervall jeweils einen neuen Timer spendieren statt mit den ganzen hunderttausend milli-Differenzen zu jonglieren... Wink

ich finde für die AVRs überigens SimpleTimer.h http://playground.arduino.cc/Code/SimpleTimer noch weit einfacher als Timer.h
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
28.08.2015, 10:45
Beitrag #13
RE: Langes delay - wie macht man das?
Ich habe mir die "SimpleTimer-Lib" mal angesehen und kann das nur bestätigen.

(27.08.2015 22:55)HaWe schrieb:  ich finde für die AVRs überigens SimpleTimer.h http://playground.arduino.cc/Code/SimpleTimer noch weit einfacher als Timer.h

Diese ist sehr einfach zu händeln.

Allerdings ist es für "Anfänger", um in die Materie reinzukommen einfacher das erst mal mit den "millis" zu lernen.

Einen direkten Download der Library gibt es hier:

https://github.com/jfturcot/SimpleTimer

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
02.09.2015, 17:33
Beitrag #14
RE: Langes delay - wie macht man das?
Wie schon geschrieben, funktioniert die Schaltung wie gewünscht. Nun kommt aber eine neue Anforderung hinzu, bei der ich nicht weiß, wie ich es angehen soll. Es soll ein weiterer Taster installiert werden. Wird dieser Taster gedrückt, soll der lang laufende Timer wieder auf null gestellt werden und von vorne laufen. Wie macht man das?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
02.09.2015, 17:53
Beitrag #15
RE: Langes delay - wie macht man das?
Dazu müsstest du uns den aktuellen Sketch zeigen. Bitte diesen hier in Code-Tags, mit dem "#" einfügen.

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
02.09.2015, 18:11 (Dieser Beitrag wurde zuletzt bearbeitet: 02.09.2015 18:14 von Gelegenheitsbastler.)
Beitrag #16
RE: Langes delay - wie macht man das?
Da hat sich, abgesehen davon, dass ich aufgeräumt habe, nicht viel verändert.
Drücke ich den Taster, beginnt eine LED zu blinken und ein Relais wird angezogen. Nun soll der Timer für das Relais auf null gesetzt werde und von vorne beginnen, wenn der Taster nochmals gedrückt wird.

Code:
#include "avr/wdt.h"
const int ledPin =  1;
const int relaisPin = 0;
const int tasterPin = 2;


int ledState = LOW;
int relaisState = LOW;

unsigned long previousMillis = 0;
unsigned long previousMillisRelais = 0;

const long interval = 200;
const long intervalRelais = 3600000;


void setup() {
  wdt_disable();
  pinMode(ledPin, OUTPUT);
  pinMode(relaisPin, OUTPUT);
  pinMode(tasterPin, INPUT);
  digitalWrite(tasterPin, HIGH);
  digitalWrite(relaisPin, LOW);
  wdt_enable(WDTO_4S);  
}

void loop()
{
  unsigned long currentMillis = millis();
  unsigned long currentMillisRelais = millis();
  
    if(currentMillis - previousMillis >= interval) {
    previousMillis = currentMillis;  
        if (ledState == LOW)
      ledState = HIGH;
    else
      ledState = LOW;
   digitalWrite(ledPin, ledState);

  }
  
  
     if(currentMillisRelais - previousMillisRelais >= intervalRelais) {
    previousMillisRelais = currentMillisRelais;  

    if (relaisState == LOW)
      relaisState = HIGH;
    else
      relaisState = LOW;

       digitalWrite(relaisPin, relaisState);
     }
      
wdt_reset();

}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Delay nurmili 2 218 10.07.2016 16:55
Letzter Beitrag: nurmili
  Problem mit Delay und Millis funnyzocker 1 457 26.06.2016 09:54
Letzter Beitrag: hotsystems
  Kann ich in eine For Schleife einen delay einbauen JanGamer11 6 611 05.01.2016 12:34
Letzter Beitrag: Hilgi
  Rampe ohne Delay DC-Motor de_flexus 3 1.932 22.11.2015 13:07
Letzter Beitrag: frank2000
  Doppelblitz ohne Delay cleko 3 853 12.11.2015 08:02
Letzter Beitrag: Bitklopfer
  Problem einen code zu schreiben der das macht was ich möchte.... Katzenfreund 11 1.459 01.11.2015 17:50
Letzter Beitrag: Katzenfreund
  Taster für zwei Funktionen nutzen - wie macht man das? Gelegenheitsbastler 2 946 22.07.2015 11:56
Letzter Beitrag: Scherheinz
  mal wieder ein kleines Problem mit blinken ohne delay :) Sbbfreack 6 1.729 06.07.2015 15:59
Letzter Beitrag: Sbbfreack
  Einen hochzählenden Wert auf null setzen - wie macht man das? Gelegenheitsbastler 6 1.323 16.05.2015 16:18
Letzter Beitrag: Gelegenheitsbastler
  Blink ohne Delay - Merkwürdiger Fehler rave 7 1.830 11.05.2015 06:29
Letzter Beitrag: Bitklopfer

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste