Step 7 Problem mit Loop in AWL

DerPaul

Level-2
Beiträge
45
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich habe ein Problem mit meiner Loop Schleife...

Ich habe versucht ein Schieberegister zu programmieren welches 4 Werte schiebt. Die Werte stehen in einem DB. Aber irgendwie schiebt der die nicht! Im DB sind alle Werte außer den ersten (Welcher als letztes geschrieben wird) auf 0.

Die siehr folgendermaßen aus:
Code:
      AUF   "Band-ImpulsüberwDB"

      U     "Flanke_Kühlerband" //Flanke - also nur für einen Zyklus
      SPBN  s01

      L     4
Lp1:  T     MW    27
      L     MW    27
      L     2
      *I 
      T     #AdressDestination
      L     L#2
      -D    
      T     #AdressSource
      L     DBW [#AdressSource]
      T     DBW [#AdressDestination]
 
      L     MW    27
      LOOP  Lp1

s01:  L     #Kuehler_Zaehlwert
      BTI   
      T     DBW    0
      R     "Flanke_Kühlerband"

Jemand eine Idee warum das nicht funktioniert? Wäre für jede Hilfe Dankbar!
 
Probiere mal so:
Code:
      AUF   "Band-ImpulsüberwDB"

      U     "Flanke_Kühlerband" //Flanke - also nur für einen Zyklus
      SPBN  s01

      L     4
Lp1:  T     #tempSchleifenzaehler
      SLD   4
      T     #AdressDestination
      L     P#2.0
      -D    
      T     #AdressSource
      L     DBW [#AdressSource]
      T     DBW [#AdressDestination]
 
      L     #tempSchleifenzaehler
      LOOP  Lp1

s01:  L     #Kuehler_Zaehlwert
      BTI   
      T     DBW    0
      R     "Flanke_Kühlerband"

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Warum SLD 4? War das Pointerformat nicht mit SLD 3 herzustellen? Danke für den Tipp! So langsam schaffe ich es wieder meine grauen Zellen in bewegung zu bringen und mich an einiges zu erinnern...
 
PS:
Hmm, das wird auch nicht funktionieren, weil der Schleifenzähler im letzten Durchlauf 0 ist.
Du müsstest vom Schleifenzähler die #AdressSource berechnen und + P#2.0 die #AdressDestination.
(Der Code tippt sich nur bescheiden mit 'nem Tablet.)

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
PS:
Hmm, das wird auch nicht funktionieren, weil der Schleifenzähler im letzten Durchlauf 0 ist.
Du müsstest vom Schleifenzähler die #AdressSource berechnen und + P#2.0 die #AdressDestination.
(Der Code tippt sich nur bescheiden mit 'nem Tablet.)

Harald
Das habe ich jetzt nicht ganz verstanden... Wie meinst du das?

Und das mit SDL 4 leuchtet ein...

PS: Danke für die schnellen Antworten...
 
So sollte es gehen, wenn der FIFO 5 Einträge hat und der neueste am Anfang dazukommt:
Code:
      AUF   "Band-ImpulsüberwDB"

      U     "Flanke_Kühlerband" //Flanke - also nur für einen Zyklus
      SPBN  s01

      L     4
Lp1:  T     #tempSchleifenzaehler
      SLD   4
      T     #AdressSource
      L     P#2.0
      +D    
      T     #AdressDestination
      L     DBW [#AdressSource]
      T     DBW [#AdressDestination]
 
      L     #tempSchleifenzaehler
      LOOP  Lp1

s01:  L     #Kuehler_Zaehlwert
      BTI   
      T     DBW    0
      R     "Flanke_Kühlerband"

Harald
 
Zurück
Oben