Dword auf Bit Array übertragen

SCM

Level-1
Beiträge
335
Reaktionspunkte
33
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo!

Hab ein kleines Problem mit einer Übertragung von einem Dword auf ein Bit Array!
Aussehen tut das ganze so:
Ich bekomme von einem Pc ein Bitmuster als Dword gesendet!
Diese wandle ich dann um also Low and High Word getauscht!
Bis hier funktionierts auch soweit!

Und jetzt möchte ich das Dword auf ein Bit Array das als Statische Variable angelegt ist übergeben!
Momentan hab ich das so nur funktioniert es nicht so wirklich:

LAR1 P##LM_ACTIVE
L "LM".AKTIV_PC
T D [AR1,P#0.0]
Was hab ich hier falsch gemacht?

Dann weiters möchte ich ein Array das als Statische angelegt ist in einen Datenbaustein schreiben wo das selbe Array liegt!
Das hab ich mir so gedacht:

LAR1 P##LM_ERROR
L D [AR1,P#0.0]
AUF "LM"
T DBD 6

an der Stelle DBD 6 begint das Array im DB.

Kann das so funktionieren??


Bin über jede Hilfe froh!

Danke

Mfg SCM

 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

das hab ich auch schon versucht funktioniert nur leider uach nicht! Habs jetzt so:


L "LM".AKTIV_PC
LAR1 P##LM_ACTIVE
T DID [AR1,P#0.0]

Mfg
 
Hallo,,

hab jetzt wo anders das Problem gefunden!

Kann es sein wenn ich das Dword auf das Array übergebe das dann das erste Bit im Array den selbern wert wie das erste Bit vom DWord hat?

Normalerweiße haben wir das immer so gemacht:

Das Dword auf ein Merkerdoppelwort geschrieben!
Dann die einzelnen Bit anhand der Merker angesehen!
Da wars immer so das man Hinten anfagen musste beim Merkerdoppel damit ich die erste Stelle sehe!Ist das bei den Array anders?


Was sagt ihr zum 2ten passt das so?
LAR1 P##LM_EMPTY
L D [AR1,P#0.0]
AUF "LM"
T DBD 10


Danke Mfg
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das Array belegt den Speicherplatz "von vorne nach hinten durch". Es gibt also keine Vertauschungen. Das kannst Du aber auch selbst mal nachschauen, indem Du den Ablage-DB mit der Datenansicht anzeigen lässt.

Bringt Dir die indirekte Adressierung mit Pointern denn irgendwas?
Möglicherweise beschränkt sich das was Du da machst ja auch auf ein paar Datenwörter. In dem Fall würde ich die absolute Adressierung vorziehen. Das ist transparenter und birgt weniger Fehlerquellen.
 
Das Array belegt den Speicherplatz "von vorne nach hinten durch". Es gibt also keine Vertauschungen. Das kannst Du aber auch selbst mal nachschauen, indem Du den Ablage-DB mit der Datenansicht anzeigen lässt.

Bringt Dir die indirekte Adressierung mit Pointern denn irgendwas?
Möglicherweise beschränkt sich das was Du da machst ja auch auf ein paar Datenwörter. In dem Fall würde ich die absolute Adressierung vorziehen. Das ist transparenter und birgt weniger Fehlerquellen.


Ich bekomme ein Bitmuster vom Pc als Dword und muss es dann einzeln auswerten!
Anhand von dem Welches Bit High ist weiß ich welche Maschine aktiv geschaltet ist!Damit ich nicht auch Zahlen vergleichen muss mache ich das mit dem Array!Und wenn ich es auf ein Merkerdoppelwort Kopiere muss ishc immer hinten anfangen nachzusehen das gefällt mir nicht!

Oder wie meinst du sollte ich es machen mit direkter Adressierung?

Mfg
 
Ja das würde gehen!Will die Daten aber nur Statisch haben!Brauche ich in einen Globaldatenbaustein nicht!

Mfg
 
Code:
*
      LAR1  P##xAValues
      L     #dIN
      T     DID [AR1,P#0.0]

mit xAValues = Array [0..31] of bool in Stat

FUNKTIONIERT!
man muß natürlich mit dem AR2 aufpassen, wenn man dies vorher schon mal verbogen hat muß es in den ausgangszustand versetzt werden insbesondere bei multiinstanz zugriffen gibt es noch mehr zu beachten...
 
Zuletzt bearbeitet:
Das entspricht dann wohl der gesuchten Lösung. Strategisch gesehen würde ich mir aber eher einen DB dafür anlegen, weil das wahrscheinlich die "passendere" Lösung für die Aufgabe wäre.

DB´s kosten ja nichts ;-)

Ist ja auch eine Philosophiefrage. Ich halte nicht viel von indirekter Adressierung, wenn man damit keinen echten Gewinn durch sparen von Code bzw. eine bessere Übersichtlichkeit erzielt.
Vielleicht geht es einem "Vollblutprofi" ja anders, aber ich finde die Lesbarkeit nicht so dolle...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das entspricht dann wohl der gesuchten Lösung. Strategisch gesehen würde ich mir aber eher einen DB dafür anlegen, weil das wahrscheinlich die "passendere" Lösung für die Aufgabe wäre.

STRATEGISCH gesehen ist eine gekapselte datenbasis für eine funktion DIE bessere lösung, da man sich so die sogenannte bibliotheksfähigkeit erhält... ENDE der durchsage
 
Zurück
Oben