Picproje Elektronik Sitesi

DERLEYİCİLER => CCS C => Konuyu başlatan: hesap19 - 30 Mart 2017, 09:53:06

Başlık: B Portunu Binary Olarak Nasıl Okurum?
Gönderen: hesap19 - 30 Mart 2017, 09:53:06
Merhaba
B portunu yukarıdan aşağı doğru binary olarak okumam lazım.Sonra duruma göre misal 10110 ise a0 1 olsun,Birde a portunun durumunu konum değiştirdikçe kaydetmem lazım.Bunu hangi kodlarla yapabilirim?Basit bir dtmf devresi yapmaya çalışıyorum.İf komutu içine b0=1 ve b1=0 ve b2=1 ve b3=1 ve b4=0 bu şekilde yapabilirim diye düşündüm ama B portunu binary olarak okursam direk 10110 olarak şartlandırırsam daha iyi olur diye düşündüm.Pic olarak 16F628A kullanıcam.Cevap yazan herkese şimdiden çok teşekkür ederim.
Başlık: Ynt: B Portunu Binary Olarak Nasıl Okurum?
Gönderen: yldzelektronik - 30 Mart 2017, 10:30:46
İlgili portun giriş registerini okursanız byte olarak bütün bir değer elinizde olur.
Başlık: Ynt: B Portunu Binary Olarak Nasıl Okurum?
Gönderen: vitruvius - 30 Mart 2017, 10:59:02
CCS C'nin kılavuzu (https://www.ccsinfo.com/downloads/ccs_c_manual.pdf)'nu okudunuz mu? input_x() fonksiyonuna bakın.
Başlık: Ynt: B Portunu Binary Olarak Nasıl Okurum?
Gönderen: hesap19 - 30 Mart 2017, 11:12:34
O kumutla portu oduk.Sonra if şartının içine bu binary sayıyı nasıl yazıcam?
Başlık: Ynt: B Portunu Binary Olarak Nasıl Okurum?
Gönderen: mehmet - 30 Mart 2017, 11:21:38
"0b10110"
Başlık: Ynt: B Portunu Binary Olarak Nasıl Okurum?
Gönderen: Salih - 30 Mart 2017, 12:37:37

Örnek:


if (input_B() == 0b01000110)
{
....
...
}
Başlık: Ynt: B Portunu Binary Olarak Nasıl Okurum?
Gönderen: hesap19 - 30 Mart 2017, 13:40:24
A portunun pinlerinin son durumlarını nasıl kaydederim?
Başlık: Ynt: B Portunu Binary Olarak Nasıl Okurum?
Gönderen: RaMu - 30 Mart 2017, 19:20:22
Portu okuduktan sonra,
karşılaştırmadan önce,
okuduğun port değerinin istemediğin bitlerini 
"&"  yani "AND" işlemi ile sıfırlarsan dahada güzel olur.





if (  (input_a() & 0b00011111) ) == 0b00010110){.......}
Başlık: Ynt: B Portunu Binary Olarak Nasıl Okurum?
Gönderen: omereliusuk - 30 Mart 2017, 21:13:38
B portunu input yazarak tamamen giriş haline getiriyorsunuz.
Bazıları giriş bazıları çıkış ise bu komut tam anlamıyla çalışmaz.
*(0×0a) &0×ff
şeklinde bir ifade yazarsanız 0xff değerini hangi portları okuyacaksınız ona göre değerlendirmek kaydıyla istenilen pinleri tris değerine dokunmadan yapabilirsiniz.
input_state

https://www.ccsinfo.com/forum/viewtopic.php?t=46396 (https://www.ccsinfo.com/forum/viewtopic.php?t=46396)

Burada bir örnek var.
Başlık: Ynt: B Portunu Binary Olarak Nasıl Okurum?
Gönderen: RaMu - 31 Mart 2017, 18:33:47
Bende dün " input_state(PIN_X); " komutunu arıyordum,
sanki portu okuyan versiyonuda vardı gibi hatırlamıştım ama yanılmışım sanırım,

input_state sadece bir pini okuyabildiğinden her zaman işe yarayamayabiliyor.
Yine verdiğin linkteki şu örnek ile porttun o anki giriş çıkış ayarını değiştirmeden port değeri okunabiliyor:


#use FAST_IO(B)     
i = input_b();
#use STANDARD_IO


Veya şöyle bir yöntemde kullanılabilir:

#byte reg_PortA = GETENV("SFR:PORTA")

veya 18F veya üstü kullanıyorsa:

#byte reg_LatA = GETENV("SFR:LATA")

Diye tanımlayıp, programın içinde:


if (  (reg_PortA & 0b00011111) ) == 0b00010110)
{
.......
}


18F ve üstü için:

if (  (reg_LatA & 0b00011111) ) == 0b00010110)
{
.......
}

Başlık: Ynt: B Portunu Binary Olarak Nasıl Okurum?
Gönderen: 30f4011 - 31 Mart 2017, 20:11:20
merahaba arkadaşlar ben mmc_spi.c dosyasını silmişimde biriniz mmc_spi.c dosyanın ccs c kodunu atabilir mi lütfen
Başlık: Ynt: B Portunu Binary Olarak Nasıl Okurum?
Gönderen: xoom - 31 Mart 2017, 20:56:27

Alıntı yapılan: 30f4011 - 31 Mart 2017, 20:11:20
merahaba arkadaşlar ben mmc_spi.c dosyasını silmişimde biriniz mmc_spi.c dosyanın ccs c kodunu atabilir mi lütfen
https://yadi.sk/d/mg8dvGyl3GXrm3