Hi, ich habe einen ATmega128 und ein 512kB Datenflash AT45DB041B. Nun möchte ich von verschiedenen Sensoren die gemessenen Temperaturwerte (-20°C - +90°C) abspeichern. Ich bekomme so etwa alle 5 Min. einen Wert je Sensor. In diesen externen Datenflash möchte ich noch eine HTML-Seite speichern, die die empfangenen Werte automatisch aktuallisiert. Nun meine Fragen: 1) Wieviel Byte soll ich schätzungsweise für die HTML-Seite reservieren? 2) Wieviele Bit brauche ich um EINEN Temperaturwert abzuspeichern? 3) Wie speicher ich diese Werte am Besten ab? (Datenbank, verkettete Liste?) Gibt es schon ein fertiges Beispiel für eine solche Programmierung? DANKE, Stefanie
1) 1024 Byte 2) mindestens 1 Bit 3) lineare Liste ,,,, (QuadComma) = Hubert Müller* *) Weil es ist ja wichtig, hier im Forum einen richtigen Namen zu verwenden LOL
2) Wieviele Bit brauche ich um EINEN Temperaturwert abzuspeichern? => 2) mindestens 1 Bit Nun, Herr Punkt, Komma, Strich: Laß mich nicht dumm sterben und erklär mir mal, wie Du mit einem Bit Temperaturen zwischen -20 und +90 Grad codierst. Ach so, ich hab´s schon: "1" bedeutet irgendwo zwischen -20 und +90, "0" bedeutet außerhalb dieses Bereiches. Bin ich zum Glück auch selber drauf kommen. Gruß Lutz
Konstruktiver Nachtrag: Wenn Du sagen wir mal in 1-Grad-Schritten abspeichern willst, sind daß etwa 110 mögliche unterschiedliche Meßwerte (genau 111). Nächste "Schrittweite" im dualen System sind 128 unterschiedliche Werte. Du mußt also 2 hoch x = 128 nach x umstellen, um die Anzahl der erforderlichen Bits auszurechnen. Das ist jetzt der "Eigenanteil" der Beantwortung der Frage. Kleine Hilfe: Das Ergebnis liegt irgendwo (ganzzahlig) zwischen 6 und 8 Bit. Gruß Lutz
OK, vielen Dank Herr Lutz Müller!! Heißt das ich muss mir eine Art Codierer in C programmieren, um einer bestimmten Bitkombination einen Temperaturwert zuzuweisen. Ich hab mit C noch nicht so viel am Hut! Aber diese Problem kann man doch bestimmt ganz einfach programmieren (nicht mit einer Switch - Case Anweisung, sondern wie...) Ich möchte ja nicht mit so blöden einfachen Fragen euch nerven... könnt ihr mir deshalb ein gutes Buch für den Einstief in die Microcontrollerprogrammierung empfehlen?? Ich habe einen ATmega128 und bin eine totale Anfängerin! Ist z.B. eine lineare Liste wie eine verkettete Liste, nur das man nichts dazwischen abspeichern kann? Ich kann mir doch dann ganz einfach meine aktuelle Speicheradresse merken und immer um eins inkrementieren?? Gruß, Stefanie
Es kommt darauf an, was Du unter einem Codierer verstehst. Irgendwie ist jedes Zahlensystem eine Codierung ;-) Lutz wollte Dir mit seinem Hinweis nur sagen, dass du vorher die Auflösung bestimmen musst. Fall 1: "1°C Genauigkeit" - Temperaturbereich: -20°C...90°C => 111 Werte -> wie groß (Anzahl der Stellen) muss dein Binärwort sein => 7 Stellen ==> Wertevorrat 2^7 = 128 (0...127) -> Wertetabelle: Temp -> Binär -> Dezimal -20°C -> 000 0000 -> 0 -19°C -> 000 0001 -> 1 -18°C -> 000 0010 -> 2 -17°C -> 000 0011 -> 3 ... +90°C -> 110 1110 -> 110 Fall 2: "0,5°C Auflösung" - Temperaturbereich: -20°C...90°C => 221 Werte -> wie groß (Anzahl der Stellen) muss dein Binärwort sein => 8 Stellen ==> Wertevorrat 2^8 = 256 (0...255) -> Wertetabelle: Temp -> Binär -> Dezimal -20,0°C -> 0000 0000 -> 0 -19,5°C -> 0000 0001 -> 1 -19,0°C -> 0000 0010 -> 2 ... +90,0°C -> 1101 1101 -> 221 Zu Tipp wegen Einstieg in die Mikrocontrollersache. Ich denke, du solltest dir erstmal einen kleinen Überblick über Digitaltechnik (Zahlensysteme, Wertebereiche) verschaffen, was meist in Einstiegs-Programmierhandbücher gemacht wird. Die Sachen kommen bei der Controllerprogrammierung immer wieder. Als Bücher finde ich "Einstieg in C" von Erlenkötter [ca. 10 Euro] ganz gut. Hardwarebasierter wird es bei "Softwareentwicklung in C für Mikroprozessoren und Mikrocontroller" von Wiegelmann. Richtige Erklärungen über externe Beschaltung und Dimensionierungen sowie Geschichten mit externen RAM und EEPROM habe ich im Buch "Messen, Steuern und Regeln mit dem Mikrocontroller 80C166" von Dörrmann gelesen. Da sgeht aber sicher etwas zu weit als Einstiegsliteratur. Ich denke, mit Erlenkötter oder Wiegelmann kannst Du nix falsch machen. Den Rest findest Du dann kostenlos in GCC-Tutorial und deine Fragen im Forum werden dann auch direkter beantwortet werden können. Viele Grüße müllo
Nun Herr Müller, da die Dame absolut nichts über die geforderte Temperaturauflösung geschrieben hat, wird eben mindestens 1 Bit benötigt: 0 : -20°C 1 : +90°C ,,,, (QuadComma) = Hubert Müller* *) Weil es ist ja wichtig, hier im Forum einen richtigen Namen zu benutzen LOL
Sollte keine Kritik meinerseits an dich sein...ich bin nur einen sinnvollen Ansatz geben. Aber deine Interpretation von Digitaltechnik muss ich mir unbedingt merken :-))) In diesem Sinne -> bitte ein Bit Gruß müllo (ohne ,,,,)
Hallo Müllo, ES (punkt,komma,strich, ...) meinte sicherlich meine erste Antwort auf Stefanies Frage. Aber selbst wenn ES ein kleiner "wort-wörtlich-fetischist" ist, könnte ES 3 Meßwerte (-20°C - +90°C) nicht in einem bit unterbringen, da ja auch "der" Wert zwischen den Grenzwerten ... Oh Mann, auf solche Threads gehe ich auch noch ein. Schluß damit. Gruß Lutz
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.