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
for Schleife behindert teilweise Ablauf
23.11.2020, 13:01
Beitrag #1
for Schleife behindert teilweise Ablauf
Grüß Euch!

In meinem Sketch hab ich eine Messfunktion in einer for Schleife, die einen Mittelwert ermittelt:

Code:
void GetGasReference() {

  int readings = 10;
  for (int i = 1; i <= readings; i++) {
    gas_reference += snsBME680.readGas();
  }
  gas_reference = gas_reference / readings;
}

Das Problem dabei, diese "Blockiert" den Sketch für rund 2 Sekunden im Ablauf, und das sieht bei der Uhrzeitanzeige nicht sonderlich schön aus.

Nach langen Grübel bin ich nun auf keine andere Lösung gekommen. Wie kann ich das Umgehen, bräuchte nur einen Gedankenanstoß in die richtige Richtung wie ich das Angehen kann - Danke!

Gruß aus Wiener Neustadt
Toni

=================================================================
Seit die Mathematiker über die Relativitätstheorie hergefallen sind, verstehe ich sie selbst nicht mehr.

Wer Rechtschreibfehler findet darf sie behalten Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.11.2020, 13:42 (Dieser Beitrag wurde zuletzt bearbeitet: 23.11.2020 14:31 von Tommy56.)
Beitrag #2
RE: for Schleife behindert teilweise Ablauf
Probier mal:
Code:
void GetGasReference() {
  const int readings = 10;
  static int i = 0;
  if (i < readings) {
    gas_reference += snsBME680.readGas();
    i++;
  }
  else {
    gas_reference = gas_reference / (readings+1);
    i = 0;
  }
}

Gruß Tommy

Edit: statix --> static

"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
23.11.2020, 14:10
Beitrag #3
RE: for Schleife behindert teilweise Ablauf
(23.11.2020 13:01)rev.antun schrieb:  Grüß Euch!

In meinem Sketch hab ich eine Messfunktion in einer for Schleife, die einen Mittelwert ermittelt:

Code:
void GetGasReference() {

  int readings = 10;
  for (int i = 1; i <= readings; i++) {
    gas_reference += snsBME680.readGas();
  }
  gas_reference = gas_reference / readings;
}

Das Problem dabei, diese "Blockiert" den Sketch für rund 2 Sekunden im Ablauf, und das sieht bei der Uhrzeitanzeige nicht sonderlich schön aus.

Nach langen Grübel bin ich nun auf keine andere Lösung gekommen. Wie kann ich das Umgehen, bräuchte nur einen Gedankenanstoß in die richtige Richtung wie ich das Angehen kann - Danke!

Vorschlag:
- Sensor abfragen
- gleitenden Mittelwert bilden
das dürfte etwas 200 ms dauern.

-- Aus dem Rheinwerk-Verlag: Arduino - Das umfassende Handbuch ISBN 978-3-8362-7345-9 --
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.11.2020, 14:27 (Dieser Beitrag wurde zuletzt bearbeitet: 23.11.2020 14:27 von rev.antun.)
Beitrag #4
RE: for Schleife behindert teilweise Ablauf
Servus Tommy!

Nun ja, das Funktioniert ja tadellos Cool Besten dank für die Entsorgung meines Gedankenknopfes!

Und wegen statix das sollte static lauten oder Angel

Gruß aus Wiener Neustadt
Toni

=================================================================
Seit die Mathematiker über die Relativitätstheorie hergefallen sind, verstehe ich sie selbst nicht mehr.

Wer Rechtschreibfehler findet darf sie behalten Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.11.2020, 14:31
Beitrag #5
RE: for Schleife behindert teilweise Ablauf
(23.11.2020 14:27)rev.antun schrieb:  Und wegen statix das sollte static lauten oder Angel
Richtig erkannt, ich korrigiere es.

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
23.11.2020, 14:43
Beitrag #6
RE: for Schleife behindert teilweise Ablauf
(23.11.2020 14:10)ckuehnel schrieb:  Vorschlag:
- Sensor abfragen
- gleitenden Mittelwert bilden
das dürfte etwas 200 ms dauern.

Danke auch für deinen INPUT !

Gruß aus Wiener Neustadt
Toni

=================================================================
Seit die Mathematiker über die Relativitätstheorie hergefallen sind, verstehe ich sie selbst nicht mehr.

Wer Rechtschreibfehler findet darf sie behalten Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Variable in for-Schleife volllaufen lassen. gutschy 7 208 09.04.2021 17:54
Letzter Beitrag: Tommy56
  If-Schleife wird nicht mehr durchlaufen LK2567 2 385 05.02.2021 21:20
Letzter Beitrag: LK2567
  While Schleife FoxFactoy 8 1.337 01.08.2020 14:58
Letzter Beitrag: Tommy56
  millis Schleife bleibt hängen Cubicany 10 1.710 28.06.2020 18:39
Letzter Beitrag: Tommy56
  for-schleife, delay, millis, interrupt Harry 8 1.844 31.03.2020 21:02
Letzter Beitrag: Harry
  brauche Hilfe, zeitlicher Ablauf tolotos789 9 1.946 05.03.2020 13:34
Letzter Beitrag: MicroBahner
  int variable wird nicht in Schleife übertragen ha0248 8 1.730 11.02.2020 15:25
Letzter Beitrag: ha0248
  Schleife nur 1x durchlaufen ohne for... Hanibal_Smith 3 1.423 01.10.2019 19:44
Letzter Beitrag: Tommy56
  For-Schleife ohne Begrenzung? Batucada 4 1.583 26.04.2019 09:54
Letzter Beitrag: Batucada
  Berücksichtigung des A0-Einganges in if-Schleife Joergi-1911 3 1.190 17.02.2019 16:33
Letzter Beitrag: Tommy56

Gehe zu:


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