Pic basicten CCS C ye kod çevrimi

Başlatan agora_meyhanesi42, 26 Mart 2017, 21:52:44

agora_meyhanesi42

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.

Yüksel Türk ! Senin için yükselmenin hududu yoktur...

Salih

#1
int1 dizi[8];



for(i=4;i<8;i++)
    dizi[i] = input(Pin_B0 + i);

agora_meyhanesi42

#2
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.
Yüksel Türk ! Senin için yükselmenin hududu yoktur...

Salih

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;







agora_meyhanesi42

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.
Yüksel Türk ! Senin için yükselmenin hududu yoktur...

agora_meyhanesi42

Komutu açıklama imkanınız varsa sevinrim. Mesela 0xF0 ne için gerekli
Yüksel Türk ! Senin için yükselmenin hududu yoktur...

Salih

#6
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.

agora_meyhanesi42

Yüksel Türk ! Senin için yükselmenin hududu yoktur...