online
Level-1
- Beiträge
- 319
- Reaktionspunkte
- 49
-> Hier kostenlos registrieren
Hallo Leute,
mal wieder was zu Pointern . Ich hoffe es gibt noch jemanden, der hierbei ein bisschen unterstützung für den Anfang gibt. Ich versuche über eine positive Flanke einen Schleifendurchlauf zu starten, um dort einen Block von 11 Datenwörtern eins nach dem anderen mit einem Festen DW zu vergleichen. Wenn eins gleich ist soll am Ende ein Merker gesetzt werden, wenn nicht das Netzwerk verlassen werden. Hier meine Idee (SPS geht nicht mal mehr in Stop , mein erster Erfolg), der Merker 3.6 wird aber nicht gesetzt.
AUF DB 4
L DBW 1000
L 0
==I
FP M 3.5
SPBN end // Schleife nur einmal bei positiver Flanke durchlaufen
R M 3.6 // Merker auf 0 setzen
L 11 // Anzahl Wörter zum vergleichen (1080-1100)
next: T #Schleifen_Zaehler
L 1180 // DBW1180
SLD 3 // Pointer erzeugen
LAR1 // in das Adressregister 1 laden
L DBW [AR1,P#0.0]
L DBW 1002 // Vergleichen mit DBW1002
==I
SPB func // wenn ja ENDE
TAK
L P#2.0 // DBW1180 auf 1182 erhöhen
+AR1
L #Schleifen_Zaehler
L 0
==I
SPB end // Wenn Schleifenzähler 0 Ende
LOOP next
func: SET
= M 3.6 // Wenn Vergleich DBW =1 dieses Bit setzen
end: NOP 0
Danke im voraus an alle.
mal wieder was zu Pointern . Ich hoffe es gibt noch jemanden, der hierbei ein bisschen unterstützung für den Anfang gibt. Ich versuche über eine positive Flanke einen Schleifendurchlauf zu starten, um dort einen Block von 11 Datenwörtern eins nach dem anderen mit einem Festen DW zu vergleichen. Wenn eins gleich ist soll am Ende ein Merker gesetzt werden, wenn nicht das Netzwerk verlassen werden. Hier meine Idee (SPS geht nicht mal mehr in Stop , mein erster Erfolg), der Merker 3.6 wird aber nicht gesetzt.
AUF DB 4
L DBW 1000
L 0
==I
FP M 3.5
SPBN end // Schleife nur einmal bei positiver Flanke durchlaufen
R M 3.6 // Merker auf 0 setzen
L 11 // Anzahl Wörter zum vergleichen (1080-1100)
next: T #Schleifen_Zaehler
L 1180 // DBW1180
SLD 3 // Pointer erzeugen
LAR1 // in das Adressregister 1 laden
L DBW [AR1,P#0.0]
L DBW 1002 // Vergleichen mit DBW1002
==I
SPB func // wenn ja ENDE
TAK
L P#2.0 // DBW1180 auf 1182 erhöhen
+AR1
L #Schleifen_Zaehler
L 0
==I
SPB end // Wenn Schleifenzähler 0 Ende
LOOP next
func: SET
= M 3.6 // Wenn Vergleich DBW =1 dieses Bit setzen
end: NOP 0
Danke im voraus an alle.