öhm ... wie lang soll die Messreihe sein, welche Auflösung, wieviele
Bytes insgesamt ...
Mit Flash meinst Du dann ins Programmflash oder externes Flash?
Selbiges beim EEPROM ... intern oder extern?
Nur die Messwerte oder auch n Zeitstempel?
Abend Zusammen,
ICh möchte eine Messreihe von Temperatur in einem atmega speichern.
so alle minute oder mehr temperatur messen und abspeichern
nur wie mache ich das in Bascom?
und was ist besser?
Flash oder eeprom?
Habe die Suche und so schon benutzt allerdings ist mir das alles noch ein wenig unverständlich, va wie ich eine MESSREIHE anlege und diese dann am Pc auswerten kann
würde mich über konkrete programmierbeispiele sehr freuen
MFG
MOsfetgrille
öhm ... wie lang soll die Messreihe sein, welche Auflösung, wieviele
Bytes insgesamt ...
Mit Flash meinst Du dann ins Programmflash oder externes Flash?
Selbiges beim EEPROM ... intern oder extern?
Nur die Messwerte oder auch n Zeitstempel?
Vor den Erfolg haben die Götter den Schweiß gesetzt
Hi,
Danke für die schnelle Antwort,
alles intern fürs erste
auflösung : string temperatur z.b. -4,2 °C
mit zeitstempel wäre perfekt allerdings glaube ich das das dann wiederum massig speicher verschwendet oder?
ja also 100 messerwerte solltens schon sein!!
Was ich auch gelesen ahb ist das ma das auch auf sd karte speichern kann!
das soll dann aber erst später sein ich will mich erst einmal einarbeiten bzw sehen wie sich das dann alles ergibt
also ich will meserwerte vom TSic also digitaler temperatursensor einspeichern!
MFG
MOsfetgrille
Die Werte sollte man binär Speicher, so wie man sie vom Sensor bekommt. Das wird dann vermutlich ein 16 Bit wert (Word oder Integer) sein. Für einen Zeitstempel wäre das dann wohl nochmal 16 Bits.
Damit sollten die 1024 Byte EEPROM im Mega32 für 512 Werte reichen, abzüglich eventuell ein Paar Bytes die man für was anderes (z.B. Schrittweite, Sensor Nr,...) braucht.
Die Umwandlung in eine Zeichenkette sollte man erst vor der Überragung zum PC machen. Das Spart einiges an Speicher.
Es geht mit einer externen SD karte, aber nicht ganz einfach. Die nächst größeren Speicher wären erst mal ein externes EEPROM (1- ca. 64 Kbytes) oder Dataflasch (256 kBytes - ca. 2 MByte). Die sind einfacher anzusteuern als eine SD-karte. Bei der SD Karte könnte man die Daten dann aber auch über die Karte zum PC bringen.
Morgen;
Ja dann werde ich das erst mal mit eeprom versuchen,
Nur wie mach ich das Bascomtechnisch am besten das er mir ned immer den alten string überschreibt?
MFG
MOsfetgrille
nee, strings schreibt man nicht ins eeprom ... das ist platzverschwendung.
du gehst einfach hin und nimmst den messwert mal zehn und addierst ein Offset dazu, z.B.
(-4,2 + 20) * 10
Dann geht Dein Messbereich eben bis -20°, die Zehn brauchste für die
Dezimalstelle, dann hast Du nen positiven Wert, den du bequem in 2 Bytes
schreiben kannst. (durch zerlegen der Zwei Ergebnisbytes in highbyte und
Lowbyte). Bei der Übertragung an den PC rechneste die ausgelesenen
Werte einfach wieder rückwärts ( (x/10)-20 ) und schon passts wieder.
Das geht dann am Einfachsten per Writeeeprom und fertig ist die Laube.
Ach so, einen Pointer musste natürlich auch mitzählen lassen wo die neuen
Daten hin sollen.
Ins Programmflash Daten schreiben geht zwar prinzipiell über den Umweg
Bootloader, aber ich glaub Du bist dafür noch nicht weit genug fortgeschritten.
Vor den Erfolg haben die Götter den Schweiß gesetzt
Ja genau so stell ich mir das vor ja eeprom reichts fürs erste völlig aus und das mit der umformung hört sich sehr gut an,
nur bin ich mir der Umsetzung nicht richtig bewusst mit ein paar codeschnipsel wäre mir sehr geholfen!
Nja werd jetz erstmal wieder die Suchmaschinen quälen XD
MFG
Den "Codeschnipsel" für die Umwandlung hat Vitis schon geschrieben
Du hast den Wert vom Sensor => Variable x
Wenn der Temp. Bereich vom Sensor z.B. bis -20°C geht und der Sensor 1 Nachkommastelle hat rechnest du
(x+20)*10
Dann hättest du bei z.B. -4,2°C
(-4,2+20)*10=158 => diesen Wert speicherst du
Wenn du den Wert wieder zurückrechnen willst musst du den gespeicherten Wert durch 10 dividieren und die 20 wieder wegrechnen.
Vom obigen Beispiel 158
(158/10)-20=-4,2 => diesen Wert zeigst du z.B. am Display an
japp jetzt läufts!
nur stellt sich mir jetzt die frage wie ich den "datenmüll" am pc auswerte!?
wenn ich mir eXtreme Burner die daten aus dem eeprom auslese is das ja ein .hex file
ich will aber die das messergebnis so wie ich es im atmega gespaichert habe also z.b. (x+20)*10 z.b. 280 für 8 °C
am besten wäre irgend ein programm in dem man gleich einen graphen zeichnen kann!
geht das so?
oder muss ich das mitm nen ft232 über rxd und txd auslesen?
MFG
MOsfetgrille
Ich würde am PC en Programm schreiben (Visual Basic, Visual C, LabView,...) indem du einen Befehl an den µC sendest und der µC dir die Daten zurücksendet. In den 3 Programmen ist die RS232 Schnittstelle schon integriert, du brauchst nur mehr die Befehle,... verwenden.
Lesezeichen