Merhaba arkadaşlar pic basicte yazdığım resimde görülen ReadID isimli alt programdaki for döngüsünün içindeki işlemi ccs c de nasil yazabilirim. komut portb nin 4 5 6 7 pinlerini okuyor ve id isimli değişkene aktarıyor. Tesekkur ederim.
(https://s9.postimg.cc/m69x6zccb/20170326_214705.jpg) (https://postimg.cc/image/m69x6zccb/)
int1 dizi[8];
for(i=4;i<8;i++)
dizi[i] = input(Pin_B0 + i);
Teşekkür ederim. Peki Pin_b0 mi yazmam gerekli yoksa pin_b(i) mi. Bilmediğim icin soruyorum kusura bakmayın. Birde diziye aldıktan sonra tek tek değil komple değişken ile işlem yapıyorum. Yani dizi değişkenin 4 ile 7 arasındaki bitlerine port pinlerine göre tek tek değer aldıktan sonra bunları komple işliyorum. Mesela port 0101 şeklinde okunmuş olsun id değişkenine bunu sıra ile alıyor ve bunu komple '5 'şeklinde kullanıyorum. Yani kullanmak istediğim sey bir dizi değil herhangi bir değişkenin bitlerine tek tek kayıt yapıp bu kayıdı komple olarak kullanmak.
O zaman şöyle de yapılabilir.
PortB komple okunarak değişkene atanabilir.
y en son değer değişkeni olsun.
y = (input_B()&0XF0)>>4;
Evet tam istediğim bu islem y değişkenin e portb nin sağdan dört bitini alıyor bu komut sanırım. Böylece döngüye gerek kalmıyor değil mi. Tesekkur ederim.
Komutu açıklama imkanınız varsa sevinrim. Mesela 0xF0 ne için gerekli
Evet PortB'nin son dört bitini (4..7) bir değişkene aktarıyor.
PortB'nin son dört bitini alabilmek için 0XF0 ile ilk dört bitini maskelememiz gerekiyor.
Yani ilk dört bitini görmezden geliyoruz.
Eğer ilk dört bitini almak isteseydik 0X0F ile ve işlemi yapmamız gerekirdi.
Çok teşekkürler