PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Werte speichern und später über RS232 auslesen?



TobiasBlome
10.06.2007, 21:43
Hallo,
ich habe 2 Variablen die ich im Minutentakt speichern möchte, und später über RS232 auslesen möchte. (alles per Knopfdruck senden)

Wie und worin wird soetwas gespeichert? (deswegen wusste ich auch nicht, wonach ich suchen sollte)
woher weiss man wie groß ein Wert ist und wieviele Werte dann in den Speicher passen?

Ich habe einen ATMega8:
8k Flash
0,5k eeprom
1024b sram

angedacht sind 2 Zahlen mit xx,x jede Minute über mindestens 2 Std -> also 240 Werte...

Tobias

peterfido
10.06.2007, 22:14
Der Mega32 schafft es gerade so.





$regfile = "m32def.DAT"
$crystal = 8000000
$hwstack = 32 ' default use 32 for the hardware stack

$swstack = 10 ' default use 10 for the SW stack

$framesize = 40

$baud = 19200


Config Timer1 = Timer, Prescale = 256
On Timer1 Timer_irq
Const Timervorgabe = 34286

Dim Wert1(240) As Single
Dim Wert2(240) As Single
Dim Wert1org As Single
Dim Wert2org As Single

Dim Zaehler As Integer
Dim A As Integer


Config Portc.0 = Input

Sendebefehl Alias Portc.0

Portc = 1 'Pullup aktiviert. falls nicht

Zaehler = 1

Declare Sub Senden()

Enable Timer1
Enable Interrupts



Do

If Sendebefehl = 0 Then Call Senden 'dann If Sendebefehl = 1 Then Call Senden

Loop



Timer_irq:
Timer1 = Timervorgabe
Wert1(zaehler) = Wert1org
Wert2(zaehler) = Wert2org
Zaehler = Zaehler + 1
Return

Sub Senden()

A = 0

Weiter:
A = A + 1
Print Wert1(a)
Print Wert2(a)
If A < Zaehler Then Goto Weiter

Zaehler = 0

End Sub



Oder halt externes RAM nutzen.

vklaffehn
10.06.2007, 22:27
Beim Mega8 könnte man entweder das Eeprom nehmen (512 Bytes), oder falls das nicht reicht, evtl ein kleines serielles EEProm extern anschließen, da hat man dann Platz ohne Ende.... naja, aber immerhin ein paar Kilobytes....
MfG
Volker

Rofo88
10.06.2007, 22:39
Wenn man die Werte auf Ganzzahl umrechnen kann erspart man dem Controller Arbeit und bekommt sie noch im SRAM unter (240 Werte mal 2 Byte)

Wenn es unbedingt Single-Werte sein müssen dann nimm wie vklaffehn sagte nen I2C-EEprom wie den 24C512, der kosten um die 3€ hat 64kB, behält die Werte auch bei Spannungsausfall und ist 100000 mal beschreibbar.

MfG

Dnerb
10.06.2007, 22:57
Stimme Rofo88 zu.

TobiasBlome
11.06.2007, 15:42
Hallo,
vielen Dank für die vielen schnelen Antworten :-)

Also mit dem I2C EEprom klingt toll dann kann ich gaaanz lange messen ;-)


Dann muss ich mich nur noch schlau machen wie ich etwas über I2C sende - ich habe mit I2C auch noch nichts gemach :oops:

Tobias

TobiasBlome
11.06.2007, 18:03
Also ich habe nun ein IC mit der Bezeichnung 24C512N
das kann ich wohl genauso ansteuern wie das 24C256 im RN-Wissen Bereich - oder?! Weiß jemand eine Adresse w steht, wie ich das IC anschließen muss? Also brauche ich noch Kondensatoren, Widerstände...? oder einfach SCL auf SCL und SDA auf SDA, plus und Minus fertig?

peterfido
11.06.2007, 18:40
2 Pullups für SCL und SDA. Etwa 4,7kOhm

TobiasBlome
11.06.2007, 20:31
gut - dann werd ich mal löten...