
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
Servus Jörg, .... trotzdem danke für deine Hilfe. Kann ich diese Werte nicht auch im internen Eeprom an einer speziellen Stelle speichern bzw. bei der Anzeige der Monatsansicht abfragen. z.B. Gesamtwert als Ganzes im Eeprom ablegen (ständig aufsummieren) wenn monat = 1 dann monatswert1 = gesamtwert - (monatswert2 + monatswert3 + .... monatswert12) und den monatswert1 bis monatswert12 immer an einer speziellen stelle im eeprom ablegen bzw. nach Bedarf zur Anzeige der Monatsansicht abrufen. hoffe ich habe mich irgendwie verständlich ausgedrückt :-) Gruß Elmar > Hallo Elmar, > > ohhhh, noch eine schlechte Nachricht. Die Unit V1.1 unterstützt ja kein I2C nur über extra Assembler Routinen. Davon habe ich keine Ahnung. Wenn man keine I2C-Bus hat, kannst du das Ganze externe speichern leider vergessen oder du steigst auf die Unit 2.0 / 1.2 um. > > Gruß Jörg > > Hallo Elmar, > > > > sehe gerade, du hast eine Unit V1.1, ich glaube da gibt es keine ChipRAM Funktion. Aber die Funktionen kann man auch selber "Nachbasteln". > > > > Gruß Jörg > Hallo Elmar, > > grundsätzlich ist es sehr einfach mit der ChipRAM Funktion Speicher zu lesen und zu schreiben. > Wert = ChipRAM(12) > ChipRAM(12) = Wert > > Wenn du bisschen löten kannst, besorge dir z.B. eine AT24C256 z.B. bei CCtools oder Reichelt (2-3€). > Fertige Bausteine mit EEPROM-Sockel beinhalten bei cctools allerdings Zusatzfunktionen entweder Echtzeituhr (PCF-RTC-EEProm) oder Porterweiterung (PCF-Ports-HS). Nur EEPROM allein ist zu einfach ;-). > > Da Stromausfälle zu jeder Zeit passieren können, nützt es nichts nur Monatswerte zu speichern. Man könnte also z.B. jede Stunde einen Wert ablegen. Öfters sollte man es nicht machen (Anzahl Schreibzyclen bei EEPROM) und dann Tageswerte usw. und dann bis zum Monat zusammenfassen. > Chipram(hour * 2) = Byte1 (wegen Word-Variable 2 mal) > Chipram(hour * 2 +1) = Byte2 > > Wenn du die PCF-RTC-EEProm einsetzt, dann hat der noch 240Byte RAM-Speicher, was den Vorteil hat, das man sooft man möchte Speichern kann ohne das etwas kaputt geht. Der Goldcap auf der Platine puffert den RAM und Uhr ca. 1Woche. > Hier könnte man also auch ständig aktualisieren und dann wirklich nur einen Wert pro Monat in das EEPROM ablegen. (prinzipiell würde sogar das RAM dafür reichen) > > Aber beim EEPROM könnte man wenn man wollte auch mehr speichern, bis zu 32k Bytewerte. > > Mit der programmtechnischen Umsetzung können wir dir dann bestimmt helfen. Ich speichere z.B. in meinem EEPROM stündlich einen Monat lang je 20Bytes (Temperaturen/Feuchte) und lese diese bei Bedarf per COM/PC aus. Dann kann man in Excel z.B. schöne Kurven darstellen ;-). > > So fürs erste... > > Gruß Jörg > > > Hallo Jörg! > > > > Nur soviel nochmal zusammengefasst. Ich möchte einen Durchflusssensor ständig einlesen und die Werte aufsummieren. Diesen Wert dann ständig und dauerhaft als Gesamtwert speichern und am LCD ausgeben. > > Zusätzlich möchte ich durch drücken einer Taste eine Art Monatsübersicht darstellen und die jeweiligen Gesamtwerte je Monat anzeigen lassen. > > > > Bin hier jedoch zunächst auf das Problem gestoßen, dass ich zu wenige Variablen zur Verfügung habe, da ich ja alleine mit dem Speichern der Monatswerte bereits 12 Wordvariablen verbrauchen würde, wenn ich den Gesamtwert und alle 12 Monatswerte einzeln speichern möchte. > > > > Manfred meinte, dass er auf seiner Homepage eine Lösung zu diesem Problem hat, nur kann ich mir hier nichts rauslesen. > > > > Grundsätzlich frage ich mich jedoch, wie ich diese Monatsübersicht programmtechnisch umsetzen kann!!!!!!! > > > > Zum Speicher wäre sicherlich eine externe Lösung geeigneter, nur habe ich auch hier keine Ahnung zur programmtechnischen Umsetzung. Ob es für meine eher kleine Anwendung sinnvoll ist - keine Ahnung. > > > > Jedoch wird ein externer Speicher wahrscheinlich nichts daran ändern, dass ich die Monatsübersicht programmtechnisch hinbekommen muss. > > > > Danke > > Gruß Elmar > > > > > > > Sorry, auf das falsch Post geantwortet, meine natürlich "Hallo Elmar" ;-) > > > > > > > Hallo MaPi, > > > > nur mal so: Hast Du mal darüber nachgedacht, einen (exteren) I2C-EEPROM zum Speichern zu benutzen? Hier hast du viel mehr Platz und die Daten gehen nicht verloren, wenn du Programmänderungen auf der C-Control machst. Ich würde sogar sagen, es wäre einfacher, da du dann die Speicherstellen direkt ansprechen und welche aus dem Tag/Monat o.ä. berechnet wird. Außerdem schützt du den C-Control-Flash vor vorzeitigem Defekt durch zu viele Schreibzugriffe. Hardwaremäßig ist es auch sehr einfach zu realisieren oder fertig zu kaufen. > > > > > > > > Gruß Jörg > > > > > > > > > Hallo Elmar, > > > > > ich muß mal drüber nachdenken. Es müsste so eine Art Ringspeicher sein, der immer nur die letzten 12 Monate aufzeichnet und nach Auffordrung über diese den Gesamtwert ausgibt. > > > > > Melde mich wieder. > > > > > MfG, MaPi > > > > > > > > > > > Hallo > > > > > > > > > > > > Das sollte eingentlich genau das sein was ich bräuchte!!! Den Gesamtwert möchte ich ständig anzeigen, nur durch drücken einer Taster möchte ich durch die Monatswerte springen. Alle Daten sollten gespeichert bleiben. > > > > > > > > > > > > Wie kann dies programmtechnisch, vielleicht in einem kurzen Beispiel, realisiert werden?? > > > > > > > > > > > > DANKE > > > > > > Gruß Elmar > > > > > > > > > > > > > > > > > > > Hallo Elmar, > > > > > > > also, wenn ich Dich richtig verstehe, dann magst Du eigentlich nur die Monatswerte speichern, diese ggf. irgendwann mal auslesen und eventuell auch mal einen Gesamtwerten haben. > > > > > > > Vorschlag: Schreibe jeden Monatswert als Wort hintereinander in die EEPROM-Datei der CC1. Du bzw. das Programm kann ja wissen, in welchem Monat das Schreiben begonnen hat. Auch wird mit > > > > > > > dem CCBASIC-Befehl CLOSE# der Dateizähler im EEPROM hochgezählt, so dass die Dateilänge und damit die Datei selbst auch im Reset nicht verloren gehen. > > > > > > > Nun kannst Du, beginnend mit dem ersten Monat der Aufzeichnung, die einzelnen Monatswerte nacheinander einlesen, weiterverarbeiten oder auch einzeln verwerfen, wenn Du nur einen bestimmten Bereich haben möchtest. Den Geamtwert würde ich nicht abspeichern, ergibt er sich doch durech Aufsummieren oder Mittwelwertbildung aus den Monatswerten. Den Gesamtwert kannst Du ja in einer Variablen bilden die aus den nacheinander eingelesenen interessierenden Monatswerten gefüllt wird. > > > > > > > Damit hättest Du die Daten resetfest, wiederholbar und trotzdem kompakt. > > > > > > > > > > > > > > Geht das so in Ordnung? > > > > > > > > > > > > > > Grüsse, > > > > > > > Mak > > > > > > > > > > > > > > > Hallo > > > > > > > > > > > > > > > > Also die Daten sollten unbedingt nach einem Stromausfall oder Reset bestehen bleiben!!!! > > > > > > > > Nur dachte ich dass ich hier ja auch die 12 Monatswerte und den Gesamtwert als Variablen einzeln definieren muss, diese Variablen dann alle nacheinander in den Eeprom als "Wert1, Wert2, ..." schreibe und sie dann wieder zum Ausgeben am LCD wieder auslese. > > > > > > > > Zu meinen Werten. Der Gesamtwert wird bei ca. 20000 liegen und der maximale Monatswert bei ca 1500-2000. > > > > > > > > Oder ist es möglich einen Gesamtwert im Eeprom an definierte Plätze für jedes Monats zu speichern und über den aktuellen Gesamtwert minus der restlichen Montas(gesamt)werte einen gewünschten Monatswert zu erhalten. > > > > > > > > > > > > > > > > Herzlichen Dank > > > > > > > > Gruß Elmar > > > > > > > > > > > > > > > > > > > > > > > > > Hallo Elmar, > > > > > > > > > ich sehe da zwei Möglichkeiten, die es zu prüfen gilt: > > > > > > > > > 1. Benötigst Du wirklich die Variablen in Wortbreite oder können es weniger als 16Bit sein um die Daten in gewünschter Auflösung darzustellen? Entweder die Auflösung ist bereits geringer als 16bit oder Du kannst die Auflösung verringern, so dass nur noch 12, 10 oder 8Bit zum Speichern benötigt werden. Damit könnte mann sozusagen eine Wortvariable für zwei Samples benutzen. Aber Vorsicht: Die Datenbreite wird durch die maximal möglichen Datenwerte bestimmt, z.B. kannst Du nur in 3Bit eine Zahl von 0 bis 7 speichern, in 8Bit eine Zahl von 0 bis 255, in 10Bit eine Zahl von 0 bis 1023 usw. > > > > > > > > > > > > > > > > > > Genereller Nachteil Deiner Methode: Da Du RAM beschreibst, wird der Inhalt bei jedem gewollten/ungewollten Reset überschrieben. > > > > > > > > > > > > > > > > > > 2. Überlege Dir, ob Du die Werte nicht in einer Datei im externen EEPROM der CC1 ablegst. > > > > > > > > > Vorteile: Die Anzahl der Samples ist nur durch die Größe des verfügbaren EEPROM-Speichers begrenzt und die Daten bleiben auch nach dem Reset erhalten. > > > > > > > > > Nachteil: Das EEPROM unterliegt auch dem Verschleiß und wird irgendwann mal den Geist aufgeben. Aber dann kann man es ja wechseln... > > > > > > > > > > > > > > > > > > Sag mal was Phase ist und ob Dir das taugt. > > > > > > > > > Beste Grüsse, > > > > > > > > > MaPi > > > > > > > > > > > > > > > > > > > > > > > > > > > > Hallo Zusammen! > > > > > > > > > > > > > > > > > > > > Ich lese einen Durchflusssensor stetig aus. Summiere diese Werte auf und bekomme somit einen Gesamtwert. Wenn ich das Programm erweitern möchte und zusätzlich für jeden Monat einen Zwischenwert haben bzw. speichern möchte geht mir der Variablenspeicher aus, da ich alleine für das Speichern der Monatswerte bereits 12 Wordvariablen benötigen würde. Ich möchte keine Daten am PC auslesen sondern einfach nur am LCD eine Gesamtwert und durch weiterdrücken einer Taste die jeweiligen Monatswerte anzeigen lassen. > > > > > > > > > > > > > > > > > > > > Hat von euch jemand eine Idee, wie ich dies lösen kann? > > > > > > > > > > > > > > > > > > > > Danke > > > > > > > > > > Gruß Elmar |
| Antwort schreiben |