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
Ticker.h und millis()
14.12.2020, 22:38
Beitrag #1
Ticker.h und millis()
Gibt es eigentlich irgendwelche Unverträglichkeiten zwischen Ticker.h und der Verwendung von millis() beim ESP8266?

Ich habe gerade ein Problem mit einer über millis() getimeten while-Schleife, die nicht terminiert, wenn ich parallel dazu mit einem Ticker eine LED blinken lasse. Das wäre zu erklären, wenn Ticker.h das hochzählen der millis() unterbinden würde.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
14.12.2020, 22:51
Beitrag #2
RE: Ticker.h und millis()
Unterbinden glaube ich jetzt gar nicht, aber was wenn der Interrupt für die Millis Zeit verändert wird.

https://www.youtube.com/watch?v=Fnzn85oWM_Q
Hier was zum Thema Deutsche Politik Angry
Und hier zum Thema richtige Politik Big Grin
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
14.12.2020, 22:57
Beitrag #3
RE: Ticker.h und millis()
Gib mal einen Link zu Ticker.h.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
14.12.2020, 23:02
Beitrag #4
RE: Ticker.h und millis()
Link zu Github
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
14.12.2020, 23:50
Beitrag #5
RE: Ticker.h und millis()
(14.12.2020 23:02)miq19 schrieb:  Link zu Github

404

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
15.12.2020, 06:35
Beitrag #6
RE: Ticker.h und millis()
What the...? Sorry, neuer Versuch: https://github.com/esp8266/Arduino/tree/...Ticker/src
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
15.12.2020, 12:26 (Dieser Beitrag wurde zuletzt bearbeitet: 15.12.2020 12:32 von miq19.)
Beitrag #7
RE: Ticker.h und millis()
Da ich den Ticker nur zum Blinken lassen zweier LEDs benutze, habe ich mir jetzt selber eine Blinker-Klasse ohne Interrupts gebaut und Ticker.h komplett rausgeworfen. Blinkt halt manchmal nicht so gleichmäßig und braucht ein bewusstes update(), aber egal.
Code:
class Blinker {
public:
  explicit Blinker(uint8_t port) :
    B_port(port) {}
  uint32_t start(uint32_t interval, uint16_t pattern) {
    B_interval = interval;
    B_pattern = pattern;
    B_lastTick = millis();
    return B_lastTick + B_interval;
  }
  void stop() {
    B_lastTick = 0;
    B_interval = 0;
    B_pattern = 0;
    B_counter = 0;
  }
  void update() {
    if (B_interval) {
      if (millis() - B_lastTick > B_interval) {
        int state = digitalRead(B_port);   // get the current state of the LED pin
        int bite = ((1 << B_counter) & B_pattern);  // get the current bit of the blink pattern
        if (bite) { // if HIGH
          if (state) digitalWrite(B_port, LOW); // switch LED ON, if was OFF
        } else { // if LOW
          if (!state) digitalWrite(B_port, HIGH); // switch LED OFF, if was ON
        }
        B_counter++;                          // advance one bit
        B_counter &= 0xf;                     // catch overflow - counter runs 0-15
      }
    }
  }

protected:
  uint8_t B_counter;
  uint8_t B_port;
  uint32_t B_lastTick;
  uint32_t B_interval;
  uint16_t B_pattern;
};

Blinker RedLed(RED_LED);

Würde mich trotzdem interessieren, woran das hängt...
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  millis (); nacheinander... Steinspiel 26 2.043 26.01.2021 18:38
Letzter Beitrag: Steinspiel
Smile Frage zu Millis im Loop - ESP32 Stargazer 5 1.026 27.12.2020 06:41
Letzter Beitrag: N1d45
  millis vs delay rev.antun 15 2.765 04.05.2020 23:47
Letzter Beitrag: rev.antun
  Kriege keinen Intervall mit millis() hin, gutschy 12 3.759 16.09.2019 15:30
Letzter Beitrag: Fips

Gehe zu:


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