S.Schleich
Level-2
- Beiträge
- 90
- Reaktionspunkte
- 0
-> Hier kostenlos registrieren
Guten Morgen liebe Gemeinde,
ich habe folgende Problematik, bzw. folgendes Problem:
Ich möchte ein Schieberegister / Ringspeicher in SCL mit eine For-Schleife schreiben. Dafür habe ich einen DB angelegt mit einem Array[1..30] of Int.
Die Laufvariable (ich habe sie "Pointer" genannt) habe ich als temporäre Variable in der Bausteindeklaration angelegt.
Im InOut-Bereich der Bausteindeklaration habe ich das Array[1..30] ebenfalls angelegt.
Als Input-Variablen habe ich einen Taktmerker und eine Int-Variable.
Immer wenn der Taktmerker true ist, soll geschoben werden.
So sieht mein Programm aus:
IF #Taktmerker THEN
FOR #Pointer := 30 TO 2 BY -1 DO
#Array[#Pointer] := #Array[#Pointer -1];
END_FOR;
#Array[1] := #Int_Variable;
END_IF;
Nun werden allerdings alle Plätze mit der INT-Variable belegt. Ich habe zum testen mal den Pointer als statische Variable angelegt, um sie zu beobachten. Und siehe da. Der Pointer hat den Wert "1". Und genau das verstehe ich nicht.
Wäre um Hilfe sehr dankbar
ich habe folgende Problematik, bzw. folgendes Problem:
Ich möchte ein Schieberegister / Ringspeicher in SCL mit eine For-Schleife schreiben. Dafür habe ich einen DB angelegt mit einem Array[1..30] of Int.
Die Laufvariable (ich habe sie "Pointer" genannt) habe ich als temporäre Variable in der Bausteindeklaration angelegt.
Im InOut-Bereich der Bausteindeklaration habe ich das Array[1..30] ebenfalls angelegt.
Als Input-Variablen habe ich einen Taktmerker und eine Int-Variable.
Immer wenn der Taktmerker true ist, soll geschoben werden.
So sieht mein Programm aus:
IF #Taktmerker THEN
FOR #Pointer := 30 TO 2 BY -1 DO
#Array[#Pointer] := #Array[#Pointer -1];
END_FOR;
#Array[1] := #Int_Variable;
END_IF;
Nun werden allerdings alle Plätze mit der INT-Variable belegt. Ich habe zum testen mal den Pointer als statische Variable angelegt, um sie zu beobachten. Und siehe da. Der Pointer hat den Wert "1". Und genau das verstehe ich nicht.
Wäre um Hilfe sehr dankbar
