PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : einzellen Daten aus Arry herauslösen



mat-sche
29.11.2008, 14:31
Hallo,

ich habe ein Array mit 5 Bytes, die ersten 4 Bytes will ich mit Overlay maskieren, weil diese einen Singlewert beinhalten. Das 5. will ich normal weiternutzen.
1. was muss ich machen um die 5.Stelle an die 1. zu bekommen
2. wie kann ich bei einem Array an einer bestimmten Stelle ein Overlay legen?

Bsp.
Temp2 = Twi_slv_buff(temp) => darin liegen jetzt 6 byte
Zbuff_1(temp) = Temp2 => in Zbuff_1 sollen jetzt nur die ersten 4 bytes, wie geht das zu bewerkstelligen?

Gruß MAT

for_ro
29.11.2008, 14:52
Ehrlich gesagt, verstehe ich deine Angaben noch nicht ganz.
Zeige doch mal, wie die Dim Zeilen zu Temp2, Twi_slv_buff und Zbuff_1 aussehen. Dann kann man dir sagen, was die Zuweisungen bewirken, bzw. diese so umändern, wie du es möchtest.

Gruß

Rolf

mat-sche
29.11.2008, 15:17
Hallo Rolf,

hab es inzwischen gelöst.
Aber näher zur Beschreibung:
ich empfange über TWI 5 Bytes die dann in Twi_slv_buff(temp) stehen:
Byte1-4 ist ein Singlewert, 5 ist ein Byte.
Ich sende: Byte 1-4 ein Singlewert und lege dann im Empfänger ein Variable Zbuff_1(temp) über Twi_slv_buff(temp) und kann dann mit:
Dim Zbuff_1(4) As Byte At Tout Overlay
Locate 2 , 1
Lcd "Temp3=" ; Fusing(tout , "#.##") ; "C" die Kommazahl anzeigen lassen.
Das 5. Byte wollt ich als eine Art Subadresse auslesen, um dann sagen zu können woher der Singlewert kommt, also von einem DS1820 oder einer Fotocelle.
Nun hab ich mal probiert ob dies geht:
Select Case Twi_slv_buff(5) ' es wird in Twi_slv_buff byte 5 nachgeschaut, ob diese Byte auch eine 3 drin steht
Case 3 : Locate 1 , 1
Lcd "es klappt"
Case 23 : Locate 1 , 1
Lcd "es hat nicht geklappt"
End Select
und es geht.

Aber mich würde noch interessieren ob und wie ich ein overlay zum Beispiel in meinem Beispiel über Byte 2-5 legen könnte?

Gruß MAT

for_ro
29.11.2008, 15:59
Hallo MAT,
du kannst ein Overlay auch relativ zu einer Adresse anfangen. Z.B. mit

Dim Arr(5) As Byte
Dim Var1(4) As Byte At Arr + 1 Overlay oder mit
Dim Var1(4) As Byte At Arr(2) Overlay

Gruß

Rolf

mat-sche
29.11.2008, 16:34
Ich sag nur => DANKE!

Netzman
29.11.2008, 19:16
und
Dim SingleVar as Single At Arr(1) Overlay
geht natürlich auch