PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Variable (Array hochzählen - Wie?



RogerMS
30.01.2007, 11:51
Hallo, ich bin Bascom Anfänger und hab hier ein Problem, bei dem ich eure Hilfe benötige.
Ich möchte die ID von zehn DS18B20 in einer Schleife auslesen und in die Var "Dsid" 0 bis 9 (also zehn mal) schreiben. Aber die Var ist ein Array "Dsid(8)", also heist sie korrekt: Dsid0(8) bis Dsid9(8)

Wie bekomm ich es nun Programmtechnisch hin, diese 0 bis 9 da automatisch in den Var Namen einzufügen?

Die Zählvar heist bei mir Anzahlsensor.

Ich hoffe, ich habe mich verständlich ausgedrückt!

Hier mal der Code Ausschnitt:

Dim Dsid As Byte
Dim Dsid0(8) As Byte
Dim Dsid1(8) As Byte
Dim Dsid2(8) As Byte
Dim Dsid3(8) As Byte
Dim Dsid4(8) As Byte
Dim Dsid5(8) As Byte
Dim Dsid6(8) As Byte
Dim Dsid7(8) As Byte
Dim Dsid8(8) As Byte
Dim Dsid9(8) As Byte
Dim Anzahlsensor As Byte


Anzahlsensor = 1

Dsid0(1) = 1wsearchfirst()

Do

' Wie bekomm ich es hin, das die Variable Dsid über
' die Variable Anzahlsensor hochgezählt wird?


Dsid = Val(dsid + Str(anzahlsensor))
Dsid(1) = 1wsearchnext()

Anzahlsensor = Anzahlsensor + 1

Loop

for_ro
30.01.2007, 12:55
Hallo,
du kannst die Werte alle hintereinander in ein 10x8 byte großes array legen und dann musst du den index eben erst berechnen.
Ein 2-dimensionales Array DSID(x)(y) geht leider nicht, also machst du z=x*10+y und DSID(z), wobei x von 0-9 und y von 1-8 läuft. Intern wird das sowieso in der Form abgelegt.
Allerdings würde ich fragen, ob du die Verarbeitung der Werte nicht direkt in der Einleseschleife machen solltest und dann die Temperaturen abspeicherst, anstatt alle Werte erst einzulesen und dann zu verarbeiten.

Gruß

Rolf