aşagıdaki komutları açıklaya bilirmisiniz. en çok takıldığım nokta (DBW [AR1,P#0.0] ve L PIW [AR1,P#0.0]) bu komutlar ustalardan bir yorum.
OPN "DRIVE_Siem_ComData"
L #inDriveNo
SLD 6
LAR1
L DBW [AR1,P#0.0]
T #outAddress
SLD 3
LAR1
L PIW [AR1,P#0.0]
T #tmpDriveSt
T #outDriveStat
L 0
T LW 10
KNX Standardı, küçük bir rezidansın içerisindeki aydınlatma, perde panjur, klima kontrolünden, Dünya’nın en büyük havalimanlarındaki aydınlatma otomasyonu gibi çözümler için tercih edilen bir Dünya standardıdır.
OPN "DRIVE_Siem_ComData" İlköne bu data bloğu açmış.
#inDriveNo temp değişkeni AR1 alıyor. Daha sonra;
L DBW[AR1,P#0.0] kullanarak açık olan data blogun #inDriveNo tempinde ne değeri varsa örnek olarak tempde 4 olsun DBW4' AKU1 e yüklemiş olursun. AR1 deki değer başlangıç değeridir. P#0.0 ise başlangıç değerinden sonra öteleyebileceğin byte ve bitleri gösteriri.
Örnek yapalım.
#inDriveNo = 4
L DBW[AR1,P#0.0] = L DBW4
L DBW[AR1,P#2.0] = L DBW6 dır.
PIW içinde aynı şekilde AR1 e referens noktasını alıyorsun bu referansadan sonra Pointer ile öteleme yapıyorsun.
selamlar benimde bir sorum olacaktı dolaylı adresleme ile ilgili;
Şimdi içerisindeki degerin değişken olduğu bir mw adresi düşünün..bu degerlere gore bazı bitleri set ya da reset nasıl yapabilrim? yani örnek olarak mw500 deki degerim 400 oldugunda m400.0 ı setlemek yada 600 oldugunda m400.0 ı resetlemek gibi? ama bunun gibi biçok bit olacak çunku adresteki deger degişiyo sürekli..sorum inş. anlaşılmıştır. şimdiden tşk.ler
compare işlemini soyluyosunuz sanırım ama benim bahsettim tam olarak bu degil..cunku belki onlarca tekrar olabilecek bişeyden bahsediyorum daha pratik yolu ne olabilir acaba?