Aynı anda hem IN hem OUT pin nasıl olur?

Başlatan sezgin05, 26 Mart 2004, 10:05:44

sezgin05

Arkadaşlar ben bazı pic devrelerinde bir pinin hem led'e hemde bir butona

bağlandığını görüyorum.Bu nasıl olur?REVERSE komutumu bu işi yapıyor?Örnek devre gönderen olursa sevinirim...
Merak ilmin hocasıdır...

Salih

Bildiğim kadar bir pin aynı anda hem çıkış hem giriş özelliğinde
olamaz. Siz o pine bağlı butonun durumunu anlamak

istiyorsanız
öncelikle ilgili pini giriş özelliğine alıp okuma yaparsınız. Geri kalan
sürede çıkış özelliğine alıp led in yanık veya sönük kalmasını
sağlarsınız.
 İyi çalışmalar.

birumher

Pinler aynı anda hem giriş hem çıkış olamıyor. Ama programın içerisinden istersen giriş, istersen çıkış yapabilirsein ama bu

da oldukça tehlikeli. Örneğin pin çıkış durumundayken toprakla kısa devre yaparsan pici yakarsın. Böyle bir şeyi ne için kullanacağını söylersen alternatif yöntemler geliştirilebilir...
Birkan.Herguner

sezgin05

Arkadaşlar hem giriş hem çıkış oluyor derken, aynı anda değil tabiiki.
Örneğin portların sayısı yetmediğinde pir pinden

displeyin "a" segmentini çalıştırırken aynı pine bağlı bir butonla UP yaptırabiliyor.

Erol YILMAZ

Tabi giris cikis olarak kullanilan bir pinde her duruma uygun bir devre tasarlamaniz lazim. Mesela bir buton + veya - ye

direkt değilde bir direnc uzerinden falan baglanir. Normalde onemsiz olan bazi seyler onem kazaniyor.

ise

devreyi pullup yapıp ledin ve butonun önüneni 100 ohm koyarak çalışırabilirsiniz. çıkış olsa bile butona basıldığında pin

ucuna zarar vermez

sezgin05

Arkadaşlar ilginize teşekkürler.Fakat ben meselenin elektriksel tarafını değil programsal tarafını merak ediyorum.Çünkü

piyasada bu şekilde çalışan bir çok tasarım/cihaz var.Thanks..

Veli B.

Bu konuda ki genel kullanım;
Mesela çıkış olarak kullanmak istiyorsan illaki işlem bir yerde bitip bir sonraki adıma(

altrutin olarak) geçecek ve geçiş esnasın da sen istediğin işlemi yapmış olacaksın ve tekrar o pine ihtiyacın başka bir kontrol ve ya data aktarımın da olacak değilmi?Peki tekrar ihtiyacın olana dek

neden çıkış olarak bırakacaksın?İşte burada işlemin bittikten sonra ayarlarını değiştirerek giriş e set ediyorsun.Yani birdir bir oynatıyorsun.Çıkış olması gerekiyorsa çıkış yapıp işlemin sonunda tekrar

giriş ve ya da giriş olması gerekiyorsa giriş daha sonra çıkış yapıyorsun.Önemli olan bir master bir de slave durumunu kararlaştırman.Hangisi ağırlıkta ise o durumu(giriş ve ya çıkış) seç ( Master)

ve diğer duruma( Slave) ihtiyaç oldukça git ve gel.

sezgin05

Sevgili Katana beni bir sen anlıyorsun zaten.Fakat ben yinede bir örnek isterim.Ayrıca önceki projemin son halini

göndereceğim sana.Kolay gelsin...

z

Bu tür uygulamalarda pine bağlı dış devre, pini sadece low yapabilmeli yada boşta bırakabilmeli. (Tersi de olur, ya High

yapabilmeli yada boşta bırakabilmeli).

(Her hangi bir anda bu pin dışarıdan hem H hemde L yapabiliyorsa, PIC çıkış yaparken sürücü transistörler hasar görebilir.)

Şimdi pini Z

(boş) yada L yapan dış devre örneği buton olabilir. Butona basılınca pin low olur, butona basılmazsa pin Z olur.

Şimdi küçük bir üçkağıt ile buton ve led bağlanmış  pini istersek okuyalım

istersek ledi yakıp söndürelim.

Devrede ilgili pini bir direnç ile pullup yapalım.

Reset vectöründe hemen ilgili pini input yapalım ve pine 0 yazalım.
(Input yaptık ve 0

yükledik)


Input modu: Tris den pini input yap istediğin an pin durumunu öğren.

Output modu: Pini low yapmak istersen sadece trisden pini outputa geçir. (Daha önce

pin output latch 0 yüklenmişti ve bir daha hiç bozmuyoruz.)
Bütün diğer durumlarda pini tristen input yap.

(Pin dış devre tarfından low yapılmışsa ve pic ratafından bu pin H

yapılmak istenirse yapacak hiç bir şey yok.)

Görüldüğü gibi sınırlayıcı şartlar olmasına rağmen pin hem inp hemde out modunda kullanıldı. Bu yöntem  pin yetmezliği gibi  istisnai

durumlarda kullanılabilir.

Ancak aynı pinden I/O çalışan bazı çevre birimleriyle haberleşmede bu teknik çok işe yarar. Eeprom, onewire vs...
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

cozturk

pin I²C haberleşmesinde  bazen in bazen out olarak kullanılırken 4k7 gibi bir dirençle pull up yapılıyor..

sezgin05

Benim sorumun bir örneği linkteki devrede var.Hala tam anlamıyorum...


Libertador

Devreden anladigim kadariyla RB7-RB4 uclarini ayni anda kullanmis. Kesmeler devredeki sistemi yapabilirsin. Atiyorum (hesaplamadim) 5ms araliklarla displayler surulur. 5*4=20ms. Sonraki 5ms aralik giris icin kullanilir. Toplam 25ms lik dongu bu sekilde devam eder. Sonucta sen 20ms gibi kisa bir sure elini basip cekemeyeceginden bir sorun cikmayacaktir.
Bundan bagimsiz olarak .1 sn de bir kesmeye girerek portlari giris yapip kontrol edersin sonra kesmeden cikabilirsin.
Bu arada devredeki ortak anod surme algoritmasini sormuyorsun sanirim.