durum=portb de hangi bitin 1 olduğunu nasıl anlarız

Başlatan forumsad, 22 Temmuz 2011, 12:25:11

forumsad

durum=portb  de hangi bitin 1 olduğunu nasıl anlarız teşekkürler



bu şekilde yapıyorum daha kısa bir yolu varmı acaba

If PORTB.7=0 Then SerGiden[13]="1"
If PORTB.6=0 Then SerGiden[14]="1"
If PORTB.5=0 Then SerGiden[15]="1"
If PORTB.4=0 Then SerGiden[16]="1"

t2

Alıntı Yapif portb.3 = 1 then dallan
şeklinde anlarsın. Dallama kısmı çalışırsa portb.3 = 1 demektir.

ete

A=NCD PORTB
şeklinde bir komut kullanırsan PORTB nin HIGH olan enyüksek bit değerini A değişkenine vermiş olursun. Örnek vereyim;
PORTB=%01000000 şeklinde bir değer alsın. A=NCD PORTB derseniz  , A=6 olarak geri dönecektir.
Ancak dikkat etmek gerekir. Şayet birden fazla 1 olan bit var ise en yüksek değerlisini A değişkenine atarsınız. Örnek vereyim;
PORTB=%00101010 şeklinde bir değer almış PORTB için , A=NCD PORTB eşitliğini yazarsanız. A=5 olarak geri döner. Çünki birden fazla high olmasına rağmen en yüksek değerlikli HIGH , 5. bitdir.

Proton da bildiğim kadarı ile GETBIT isimli bir komut var. Bu bir değişkenin bitlerini kontrol etmek için kullanılabilir.
Örnek verelim;
FOR I=0 to 7
  IF (GETBIT PORTB,I)=1 then ........ buraya ilgili bit =1 ise ne yapacaksanız onu yazabilirsiniz.
next
Bu komut dizini portb nin bütün bitlerini test eder ve "1" olanları bulur. Sizde ne yapacaksanız yapabilirsiniz.

Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

forumsad