Ein Messwert besteht aus: Zeit (0-65000), Analogwert (0-1023), Puls1 (low-high), Puls2 (low-high).
Rechnen wir mal zusammen:
Zeit (0-65535) -> 2 Byte (16 bit)
Analogwert (0-1023) -> 2 Byte (10 bit)
Puls1 + Puls 2 -> 1 Byte (je 2 bit)
Allerdings benötigt der Analogwert nur 10 der 16 Bit, daher könnte man die beiden Puls1 und Puls2 dort mit unterbringen.
Am Ende also minmal 4 Byte pro Messung. Bei 10.000 Messungen reden wir von 40kb Messwerten.
Eine Frage noch zum Zeit-Wert. In welcher Einheit soll denn die Zeit gespeichert werden? Microsekunden, Millisekunden? Wie lang dauert denn eine Messreihe und wie genau soll die Zeitauflösung sein?
Ggf. reicht es nämlich die Start und die Endzeit der Messreihe zu sichern (millis() oder micros(). Wenn man davon ausgeht das die einzelnen Messungen immer gleich lang dauern, kann man die Zeit der einzelnen Messwerte interpolieren und muss sie nicht speichern. Die Genauigkeit als eine 16 Bit Auflösung für 10.000 Messwerte dürfte dabei auch nicht schlechter sein. Mit einem 1024kBit Chip wären dann bei 2 byte pro Messwert könntest Du dann 65.535 Messwerte speichern.
Das Thema hatten wir doch schonmal hier:
http://forum.arduino.cc/index.php?topic=166134Ich würde einen FRAM oder SRAM mit SPI Schnittstelle verwenden.
Meine Samplebestellung für diesen
SRAM ist von Microchip gestern verschickt worden. Allerdings wird es erstmal einen Monat dauern bis ich damit spielen kann, da ich erstmal 4 Wochen im Urlaub bin.
Mario.