-
-
Erfahrener Benutzer
Begeisterter Techniker
einzellen Daten aus Arry herauslösen
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
-
Erfahrener Benutzer
Roboter Genie
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
-
Erfahrener Benutzer
Begeisterter Techniker
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
-
Erfahrener Benutzer
Roboter Genie
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
-
Erfahrener Benutzer
Begeisterter Techniker
-
Erfahrener Benutzer
Roboter-Spezialist
und
Dim SingleVar as Single At Arr(1) Overlay
geht natürlich auch
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen