byte in array kopieren [AWL]

vierlagig

Level-1
Beiträge
9.882
Reaktionspunkte
2.021
Zuviel Werbung?
-> Hier kostenlos registrieren
ich hab ja hier http://sps-forum.de/showpost.php?p=166315&postcount=7 einen zugriff auf zwei array [0..7] of bool implementiert, aber irgendwie gefällt mir das nicht! irgendwie ist das unbefriedigend, dass ich vorne weg und hinter her, die byte's einzeln, bit für bit hin und her schubsen muß ... bitschubse ist zwar nicht so schlimm wie saftschubse, aber immer noch schlimm genug ... jetz überleg ich hin und her und eine richtige lösung fiel mir bis jetzt nicht ein, aber gerade beim schreiben:

das zweite adressregister mit der adresse vom array beladen, also

Code:
*
      LAR1  P##bInput 
      L     #dTempAR2 
      +AR1   

      LAR2  P##aTempInput[0]
      L     #dTempAR2
      +AR2  

      L     B[AR1,P#0.0]
      T     B[AR2,P#0.0]
natürlich müßt ich dann das AR2 nach der abhandlung wiederherstellen, aber ich möchte jetzt, kurz bevor ich schlafen gehe nur wissen ob das so geht ... hab grad keine möglichkeit zum testen *durchdreh*
 
Zuletzt bearbeitet:
halb zwölf brauch man euch sone scheiße nich mehr fragen, wa? ...ihr seid dran schuld, wenn ich schlecht schlafe, laßt euch das gesagt sein!

aber grundsätzlich sollte das so funktionieren, hoffe nur, dass die multiinstanzfähigkeit erhalten bleibt ...
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo mein lieber 4L

Funktionieren müsste das schon, nur wenn Du den Code in einem FB verwendest, der als Multiinstanz aufgerufen wird, wirst du Deinen Spass haben.
Vorschlag:
AR2 sichern
Deinen Code ausführen
AR2 zurück laden

Gruss
Audsuperuser
 
Vorschlag:
AR2 sichern
Deinen Code ausführen
AR2 zurück laden

danke für den vorschlag, ist bei mir gängige praxis und oben auch angeführt ... es ging mir nur um die grundsätzlichkeit UND ob das laden des AR2 so richtig ist. stimmt zum einen der array-index und muß ich hier auch den multiinstanzversatz durch addieren des alten AR2 herstellen
 
so gehts:

Code:
*
      LAR1  P##bInput
      L     #dTempAR2
      +AR1  

      LAR2  P##aTempInput
      L     #dTempAR2
      +AR2  

      L     B [AR1,P#0.0]
      T     B [AR2,P#0.0]

      LAR2  #dTempAR2

was lernen wir daraus? richtig, nich dumm rum fragen, selber probieren!
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
ich möchte gern ein 2d Array aufbauen. zu jeder Stunde möchte ich 20 messwerte erfassen. ich wollte dieses mit einem array welches variabel ist machen, doch das geht nur in scl. hat jemand ein beispiel für eine awl anweisung??

L array_online[0]
T arry_archiv[std_zahl,0]

L array_online[1]
T arry_archiv[std_zahl,1]

L array_online[2]
T arry_archiv[std_zahl,2]

usw....
 
das zweidimensionale array (im bsp. mit INT) ist im speicher so aufgebaut:

0.0 array[0,0]
2.0 array[0,1]
4.0 array[0,2]

usw.

du lädst ins adressregister den start vom array und entsprechend der stunde dann einen versatz von, sagen wir 20 INT-werte, P#42.0 je stunde
 
Zuletzt bearbeitet:
Vorschlag:
AR2 sichern
Deinen Code ausführen
AR2 zurück laden

Ich hatte mal den Fall, daß ein Baustein, der im OB35 aufgerufen wurde und der offensichtlich das AR2 verwendet hat, ohne diesen sauber zu sichern, dazu geführt hat, daß ich mir fast den Kälberstrick genommen habe, weil immer wieder Bearbeitungsfehler auftraten. Seither verwende ich das AR2 nicht mehr.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich kann mir den Wolf sichern, wenn ein anderer Baustein interruptgeführt dazwischen hackt und das AR2 nicht weg- und zurückschreibt, dann kann ich mir mit dem Inhalt des AR2, in meinem Baustein, den Hintern wischen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Warum war dann der Fehler weg, als ich nur noch das AR1 verwendete?
Gefunden hatte ich den Verursacher, als ich den OB35 mal geleert habe.

wie bereits erwähnt, jeder interrupt-FB oder FC in dem AR2 benutzt wird, beim FB sowieso, die vier zeilen investieren und alles wird gut ... sehe dein problem nicht!
 
Zurück
Oben