PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : "Speicher"frage



Killer
22.11.2007, 20:59
Hallo,
ich habe folgende Frage: ich bekomme z.B. jede Sekunde einen Wert auf einen AVR vermittelt und möchte diesen in Variablen (Ram) zwischenspeichern. Ich bekomme also den ersten Wert und "speichere" ihn. Dann kommt der zweite, dritte, vierte...usw. Jetzt möchte ich aber verständlicherweise keinen unendlich langen Quellcode schreiben für 200-300 Variablen oder einen ähnlichen Wert. Gibt es eine Möglichkeit dem µC zu "sagen", dass wenn die erste Variable bereits belegt ist soll er den Wert auf der Nächsten speichern. Also eine Art


do
Incr Variablenname 'Variablenname=beliebiger Name
Variablenname=bekommender_wert
loop


ich hoffe ich habe mich einigermaßen verständlich ausgedrückt 8-[

MfG Killer

Pascal
22.11.2007, 21:07
Ich weiß genau, was du machen willst. Sowas nennt man array. Sind quasi mehrere Variablen von deinem geforderten Typ, auf die du per Index zugreifen kannst. In C geht das dann so: Variablenname[Zähler] = bekommener_wert
Wie du das in Bascom programmieren kannst, musst du dann mal in der Hilfe nachschlagen.

stefan_Z
23.11.2007, 04:34
Schau mal in der Bascom-Doku nach WRITEEEPROM und RESTORE.
Damit kann man Daten im EEP-ROM ablegen - da ist ausreichend Platz vorhanden und der Speicher ist nicht flüchtig.
Ansonsten machst du einen Array mit
Dim Array(10) As Byte
Der liegt dann im RAM und kann z.B. mit sowas angesprochen werden:
Array(1) = X
Y = Array(Z)

Anmerkung:
Arrays im RAM fangen immer mit Element Nr. 1 an, während das erste Element im EEP immer Nr. 0 ist!

Killer
23.11.2007, 20:30
Muss ich nicht angeben wieviele Variablen es sozusagen meinetwegen von "Array" geben soll?

MfG Killer

for_ro
23.11.2007, 22:41
Hat er doch: 10 Elemente vom Typ Byte (Dim Array(10) As Byte)

Gruß

Rolf