Picproje Elektronik Sitesi

DERLEYİCİLER => CCS C => Konuyu başlatan: agora_meyhanesi42 - 26 Mart 2017, 21:52:44

Başlık: Pic basicten CCS C ye kod çevrimi
Gönderen: agora_meyhanesi42 - 26 Mart 2017, 21:52:44
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/)
Başlık: Ynt: Pic basicten CCS C ye kod çevrimi
Gönderen: Salih - 26 Mart 2017, 22:47:12

int1 dizi[8];



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


Başlık: Ynt: Pic basicten CCS C ye kod çevrimi
Gönderen: agora_meyhanesi42 - 26 Mart 2017, 22:50:43
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.
Başlık: Ynt: Pic basicten CCS C ye kod çevrimi
Gönderen: Salih - 26 Mart 2017, 22:58:01
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;







Başlık: Ynt: Pic basicten CCS C ye kod çevrimi
Gönderen: agora_meyhanesi42 - 26 Mart 2017, 23:01:25
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.
Başlık: Ynt: Pic basicten CCS C ye kod çevrimi
Gönderen: agora_meyhanesi42 - 26 Mart 2017, 23:02:50
Komutu açıklama imkanınız varsa sevinrim. Mesela 0xF0 ne için gerekli
Başlık: Ynt: Pic basicten CCS C ye kod çevrimi
Gönderen: Salih - 26 Mart 2017, 23:04:05
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.
Başlık: Ynt: Pic basicten CCS C ye kod çevrimi
Gönderen: agora_meyhanesi42 - 26 Mart 2017, 23:08:42
Çok teşekkürler