- Beiträge
- 15.416
- Reaktionspunkte
- 4.044
-> Hier kostenlos registrieren
Ich greife indirekt auf ein Bit zu:
Mit M300.0 funktioniert es, mit der IN-Out-Variable nicht!!!
Fehlermeldung:
Bereichsfehler beim Schreiben.
Hilfe dazu:
Ursache:
Sie haben bei der bereichsübergreifenden registerindirekten Adressierung einen unzulässigen Operandenbereich verwendet. Die Bereichskennung der Zugriffsadresse (Bit 24 -31) ist unzulässig.
Behebung:
Verwenden Sie einen Pointer mit korrekter Bereichskennung.
Was ist denn da nun falsch ???
Nachtrag:
Deklariere ich #HM_Flanke_Lebensbit als Out-Variable, dann funktioiert es wieder!
Code:
//Adresse Lebensbit berechnen
AUF DB [#Koppel_DB_Nr]
L 0 //Lebensbit Offset 0
L #Receive_Start //temp Word
+I
T #Quell_Adr //temp DWORD
L P#0.0
L #Quell_Adr
ITD
SLD 3
+D
LAR1
AUF DB [#Koppel_DB_Nr]
UN DBX [AR1,P#0.0] //Lebensbit
// = #HM_Flanke_Lebensbit //das ist eine IN-OUT Variable (Bit in einem DB)
= M 300.0
Mit M300.0 funktioniert es, mit der IN-Out-Variable nicht!!!
Fehlermeldung:
Bereichsfehler beim Schreiben.
Hilfe dazu:
Ursache:
Sie haben bei der bereichsübergreifenden registerindirekten Adressierung einen unzulässigen Operandenbereich verwendet. Die Bereichskennung der Zugriffsadresse (Bit 24 -31) ist unzulässig.
Behebung:
Verwenden Sie einen Pointer mit korrekter Bereichskennung.
Was ist denn da nun falsch ???
Nachtrag:
Deklariere ich #HM_Flanke_Lebensbit als Out-Variable, dann funktioiert es wieder!