-> Hier kostenlos registrieren
Hallo zusammen!
Ich habe mich heute daran gewagt doch einmal mit Pointern zu arbeiten.
Folgender Ansatz: Ich möchte an meinem Baustein Eine Startadresse angeben z.B. M50.0 zusätzlich möchte ich die Länge des Auswertebereiches (Bytes) als Int angeben.
Der Baustein soll mir nun nach seinem Aufruf die Anzahl der Bits mit Status "1" ausgeben.
Irgendwie verzweifel ich da gerade seit ein paar Stunden
Hier der Code:
Sieht noch wild aus, ich weiß.
Mit der Zeile:
frage ich ja jetzt die Eingangsbits ab. Ich gebe jetzt von aussen am Baustein ein Int als Startbyte und ein Int als Länge an.
Kann mir bitte jeman auf die Sprünge helfen wie ich Als Startadresse z.B. M0.0 + Länge in Bytes angeben kann?
Danke
mkd
Ich habe mich heute daran gewagt doch einmal mit Pointern zu arbeiten.
Folgender Ansatz: Ich möchte an meinem Baustein Eine Startadresse angeben z.B. M50.0 zusätzlich möchte ich die Länge des Auswertebereiches (Bytes) als Int angeben.
Der Baustein soll mir nun nach seinem Aufruf die Anzahl der Bits mit Status "1" ausgeben.
Irgendwie verzweifel ich da gerade seit ein paar Stunden
Hier der Code:
Code:
//Initialisieren
L 0
T #outy //Ausgangs Int
T #schleifenindex_2 //Schleifenindex Bit
L #start //Startbyte laden
T #schleifenindex_1 //in Schleifenindex Byte Schleife
//Startbyte + Länge
L #start
L #anzahl_bytes
+I
T #bytes
L #bytes
INC 1
T #bytes
//Hauptschleife (nxt1)
nxt1: NOP 0
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//Bit-Schleife
nxt2: NOP 0
L #schleifenindex_1 //Byte 0...schleifenindex_1
SLD 3
LAR1 // im ar1 steht p#0.0
L #schleifenindex_2 //Schleifenindex
+AR1 // der Schleifenindex wird zum ar1 hinzuaddiert. im ar1 steht jetzt p#0.x
//Auswertung Bit
U E [AR1,P#0.0] // fragt ex.x ab
SPBN ddd
L #outy
INC 1
T #outy
ddd: NOP 0
L #schleifenindex_2 // Schleifenindex hochzählen
INC 1
T #schleifenindex_2
//Bit-Schleife verlassen ?
L #schleifenindex_2
L 8
>=I
SPB out2
LOOP nxt2
out2: NOP 0
L 0
T #schleifenindex_2
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
L #schleifenindex_1 // Schleifenindex hochzählen
INC 1
T #schleifenindex_1
//Byte-Schleife verlassen ?
L #schleifenindex_1 //Byteanzahl erreicht ?
L #bytes //#bytes
>=I
SPB out1
LOOP nxt1
out1: NOP 0
Mit der Zeile:
Code:
//Auswertung Bit
U E [AR1,P#0.0] // fragt ex.x ab
Kann mir bitte jeman auf die Sprünge helfen wie ich Als Startadresse z.B. M0.0 + Länge in Bytes angeben kann?
Danke
mkd