Integerwert als Adresse für Peripheriezugriff?

sailor

Level-1
Beiträge
641
Reaktionspunkte
27
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi Jungs (u. Girls ?)!

Ich möchte einer Funktion einen Integerwert übergeben und mit diesen Wert die Adresse für ein Peripheriewort festlegen. Hat jemand ne Ahnung wie das geht?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi vl,
um für e/a je 2 gleiche P-Wörter zu adressieren so?


L #Peri_Adress //IN: Int
ITD
T #Peri_IN_1 //Temp: Dint
T #Peri_OUT_1 //Temp: Dint
L 2
+D
T #Peri_IN_2 //Temp: Dint
T #Peri_OUT_2 //Temp: Dint


L LW10
T PAW[Peri_OUT_1]
usw.


also z.B. PEW 256, 258 und PAW 256, 258
Hier für Adressierung von Sinamics - FU (Steuer+Statuswörter)
 
Zuletzt bearbeitet:
Sie muste das INT umsetsen nach ein Pointer.

L #Peri_Adress //IN: Int
SLD 3 // umsetsen nach Pointer
T #Peri_1 //Temp: Dint
L P#2.0
+D
T #Peri_2 //Temp: Dint


L LW10
T PAW[Peri_1]
L PEW[Peri_1]
T L20

aber wenn du immer dass nieder und das hoch word braucht ist es einfacher um dass DW zu brauchen

L PED[Peri_1]
T LD20

L LD10
T PAD[Peri_1]
 
Zuviel Werbung?
-> Hier kostenlos registrieren
[code ] & [/code ] ist echt schwer zu verstehen ... aber ich reg mich da nicht mehr drüber auf!

mööp, man brauch keinen pointer, die speicherindirekte adressierung reicht hier vollkommen, da muß man nicht bereichsinterne, registerindirekte adressierung bemühen, auch wenn man es könnte

Code:
*
      L     #iStart
      SLD   3
      T     #dAdresse1
      +     16
      T     #dAdresse2

      L     PEW [#dAdresse1]
      T     LW    10                    //pfui!

      L     LW    20                    //pfui!
      T     PAW [#dAdresse2]
 
Zurück
Oben