Hallo ich habe wiedermal ein Problem!
Möchte Spagetti Code vermeiden und dazu eine For Schleife verwenden leider gibt es beim Compilieren zu einen Fehler!
FORindexMode:=0TO9BY1DO
    IFVar.indexModeTHEN Â
           machwas
                     Â
    END_IFEND_FOR;
Warum kann ich nicht per schleifen Index auf die Bits von Var zugreifen?
Lg
Peter
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hallo Peter,
ich verstehe gerade den Punkt in Var.indexMode nicht. Mit Punkt greift man nur auf strukturierte Variablen zu.
Ich verwende für solche Anwendungen immer ein Schieberegister:
temp :=VAR;FORindexMode :=0TO9DO
 IFtempAND1<>0THEN
  .....
 END_IF
 temp :=SHR(temp,1);END_FOR
Der Code ist jetzt nicht getestet, d.h. kleinere Syntax- oder Tippfehler könnten enthalten sein. Falls der Compiler schlau ist und der Inhalt der IF Bedingung klein genug wird er ein Loop-Unrolling durchführen und dann eine direkte Bitmaskierung verwenden, solange die Grenzen der FOR-Schleife Konstanten sind.
Gruß
Torsten
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hallo ich habe wiedermal ein Problem!
Möchte Spagetti Code vermeiden und dazu eine For Schleife verwenden leider gibt es beim Compilieren zu einen Fehler!
Warum kann ich nicht per schleifen Index auf die Bits von Var zugreifen?
Lg
Peter
Hallo Peter,
ich verstehe gerade den Punkt in Var.indexMode nicht. Mit Punkt greift man nur auf strukturierte Variablen zu.
Ich verwende für solche Anwendungen immer ein Schieberegister:
Der Code ist jetzt nicht getestet, d.h. kleinere Syntax- oder Tippfehler könnten enthalten sein. Falls der Compiler schlau ist und der Inhalt der IF Bedingung klein genug wird er ein Loop-Unrolling durchführen und dann eine direkte Bitmaskierung verwenden, solange die Grenzen der FOR-Schleife Konstanten sind.
Gruß
Torsten