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
Verwaltung von Timeouts vieler Variablen
17.12.2013, 08:47
Beitrag #1
Verwaltung von Timeouts vieler Variablen
Hallo Forengemeinde,

mein Name ist Thorsten, ich bin ganz neu hier im Forum und beschäftige mich seit 1 - 1 1/2 Jahren mit dem Arduino. Vom Kenntnisstand würde ich mich als Fortgeschritten beschreiben.

Nun bin ich an einem Punkt, an dem ich ohne Eure Hilfe leider nicht mehr weiter komme.

Beschreibung:
Ich habe ein Funknetzwerk aufgebaut, welches mit einem Master (Mega) und vielen Clients (MiniPro) ausgestattet ist. Dabei fragt der Master im eingestellten Zeitintervall (variabel) alle Clients ab. Diese senden dann Ihre Werte (Temperatur, Luftfeuchte, Stromverbrauch und Alarmstatus) an den Master. Das funktioniert :-)

Nun möchte ich einen speziellen Client aufbauen, welches mit einem TFT-Display ausgestattet ist. Dieser reagiert auf alle Antworten der Clients, speichert die Werte und zeigt diese dann auf dem TFT an (Anzeige wechselt dabei im bestimmten Intervall).

Die Routine hierfür ist sehr einfach:
Empfange Werte -> schreibe empfangene Werte in Array "X"-> schreibe (millis() + Timeoutzeit) in array "TimeoutX"

Lese Array X und Array TimeoutX -> wenn Wert aus TimeoutX < millis() schreibe auf TFT für diese Variable "Timeout", sonst schreibe Wert aus Array X.

Das sollte ja das generelle Vorgehen bei solchen Aufgaben sein.

Nun gibt es natürlich das Problem, dass der MiniPro nur einen begrenzten Speicher für Variablen hat. Bei vielen Timeout-Arrays vom Typ uint32_t (insg. ca. 20 Variablen über alle Timeout-Arrays) geht er natürlich schnell in die Knie.

Lange Einleitung, kurze Frage: Wie kann ich die Timeouts verwalten, ohne so riesige Timeout-Arrays zu nutzen? Ein Timeout soll nach max 2 Minuten angezeigt werden.

Vielen Dank
itsy
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
17.12.2013, 10:02
Beitrag #2
RE: Verwaltung von Timeouts vieler Variablen
Hallo itsy,

Zitat:Lese Array X und Array TimeoutX -> wenn Wert aus TimeoutX < millis() schreibe auf TFT für diese Variable "Timeout", sonst schreibe Wert aus Array X.
klingt für mich so als würdest du die Werte nach der Anzeige nicht behalten wollen.
Also brauchst du doch für die Werte und Timeouts max. 2 x 20 x 32 Bit = 160 Byte, wenn du die Arrays bei jedem Durchlauf neu belegst Huh
Der SRAM des pro Mini hat 1 KB, da sollte doch genug für die restlichen Variablen aus dem laufenden Sketch übrig bleiben.
Oder habe ich was grundsätzlich falsch verstandenHuh

Grüße Ricardo

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
17.12.2013, 10:37
Beitrag #3
RE: Verwaltung von Timeouts vieler Variablen
Hallo Ricardo,

hab vielen Dank für Deine Antwort :-)

Dadurch dass neue Variablen zwischen 5 Sekunden und 2 Minuten aktualisiert werden und ich den TFT-Screen alle 10 Sekunden aktualisiere (im Wechsel Temperatur, Strom usw.) muss ich die Werte zwischenspeichern, damit diese nach einer Aktualisierung des TFT, wenn diese wieder an der Reihe sind, noch zur Verfügung stehen.

Aber ich glaube Du hast Recht ... ich könnte einen Rechenfehler gemacht haben ...

uint32_t hat nur 32 bit, oder? Dann würde Deine Rechnung stimmen und ich hätte genug Platz ...

Viele Grüße
Thorsten
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
17.12.2013, 11:37
Beitrag #4
RE: Verwaltung von Timeouts vieler Variablen
Hallo Thorsten,

Zitat:uint32_t hat nur 32 bit, oder?
Yup, deswegen heißt die so Smile

Grüße Ricardo

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
17.12.2013, 16:46
Beitrag #5
RE: Verwaltung von Timeouts vieler Variablen
Oh Mann, was habe ich da nur gerechnet?

Habs nun fertig und es funktioniert alles wunderbar :-)

Vielen Dank!!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Variablen over/underflow "deaktivieren" Scheams 6 225 23.06.2016 16:36
Letzter Beitrag: Scheams
Exclamation String Zerlegen in drei Variablen Wampo 4 852 28.12.2015 01:07
Letzter Beitrag: Wampo
  Plausibiltätsprüfung Variablen ??? MaHaI976 10 831 16.10.2015 17:39
Letzter Beitrag: MaHaI976
Information Rechnen mit variablen Jim 3 1.827 22.05.2015 16:44
Letzter Beitrag: Jim
  Variablen Fehler bei TFT Display Xwill 1 809 08.05.2015 13:10
Letzter Beitrag: Thorsten Pferdekämper
  Due: freier Speicher für Variablen während der Laufzeit? HaWe 8 1.396 28.04.2015 08:22
Letzter Beitrag: tito-t
  Variablen per WIFI zwischen 3 Arduinos versenden Daewid 4 795 23.04.2015 01:22
Letzter Beitrag: Daewid
  Variablen Typ double, char, long aus ext. EEPROM lesen SternGucker 8 1.538 02.04.2015 08:10
Letzter Beitrag: SternGucker
  Probleme mit Variablen Johngun 3 629 07.03.2015 02:37
Letzter Beitrag: Johngun
  Probleme mit einer Variablen scritch 12 1.705 05.12.2014 16:56
Letzter Beitrag: Thorsten Pferdekämper

Gehe zu:


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