H

pic portları aynı anda giriş ve çıkış olur mu ?

Başlatan huseyin, 09 Temmuz 2012, 16:11:16

huseyin

hocam eski ccs c dökümanlarinini karıştırırken pic portlarının aynı anda hem giriş hem çikiş olabilecegi yaziyordu sizin derslerinizde böyle birşeye rastlamadım ama bu konuda bilginiz var mi

Mucit23

#1
aynı anda olmaz ama program işleyişi sırasında input veya output durumunu değiştirebilirsin

input portb.0   komutu portb nin 0. bitini giriş yapar.
Output portb.0 komutu portb nin 0. bitini çıkış yapar.
Bir ulusu yok etmenin En iyi yolu o ulusun dilini yok etmektir.

www.arectron.com/

ete

Hiç bir zaman bir port pini aynı anda hem giriş hemde çıkış olamaz. Ama çok kısa sürelerde aynı pin çıkış yapılıp hemen ardından yeniden giriş yapılabilir. BU konuda bir zaman paylaşımı esastır. Bu olay CCS içinde aynıdır değişmez.
Bir pini çıkış yapıp anlık olarak giriş yaparak bir şey girip girmediği kontrol edildikten sonra pin tekrardan çıkışa çevrilebilir. Nasıl yapıldığını Mucit23 açıklamış.

Ete

pwm.c

eğer yanılmıyorsam CCS bir portun giriş yada çıkış durumunu otomatik olarak kendi ayarlıyor diye biliyorum. aynı anda hem giriş hemde çıkıştan kastın bu olsa gerek.
_/\/\/\_ -[ı- -ı>|- -|ı|ı|ı- -ı< -||- -l[]l-

huseyin

hayır ayni zaman ve sn içinde işlemci portu hem giriş hem çikiş olarak olması mümkün mü diye soruyorum,
mantıken düşününce zaten böyle birşey mümkün degil diye akla geliyor ama,
yurt dışından gelen 
bir devre var atmel işlemci kullanmişlar display in bacağina bağlı olan uc arada direnç den başka bir malzeme olmadan giriş olarak iş görüyor
onu anlaya çalişiyorum displayleri tarama ile çaliştirip ayni anda nasil o pin e voltaj verebiliyor ve görüntü bozulmuyor çözemedim

ete

Bir cok basic komutu ilgili pini otomatik giri ve cikis yapabilir. Ama emin olmak icin kendiniz yapın daha iyi.
Bir saniye buyuk bir zaman dilimi saniyenin bir milyonda birinde ilgili pin giris hemen ardından cıkıs yapılabilir. Boylece siz bakinca aynı anda hem giris hem cıkıs olmus sanırsınız.
Ete

pwm.c

şu devrede benzer bir yöntem kullanılmış.

display tarama portuna butonda ekleyerek pin sayısını yeterli hale getirmiş. bunu yapmak için portun aynı anda giriş ve çıkış olmasına gerek yokki. zaten TRIS registerine verebileceğin başka değerde yok.
ha şu var ki, bu bahsettiğin düzeneği oluşturmak mümkün ama PIC'lerde olurmu ondan emin değilim.
_/\/\/\_ -[ı- -ı>|- -|ı|ı|ı- -ı< -||- -l[]l-

Mucit23

#7
Displayi tararken aynı anda butonlarıda tarıyor. Ama butona basıldığında displayde yanar
Bir ulusu yok etmenin En iyi yolu o ulusun dilini yok etmektir.

www.arectron.com/

ete

Devre üzerinden sesli düşünelim isterseniz,
Displaylerin ortak uçlarını süren port pinleri aynı zamanda tuşlarıda kontrol etmektedir.
Bir displayin ortak ucunu sürmek için o pinin Çıkış olması gerekir. O halde sıra display sürmeye geldiği zaman ilgili pin çıkış yapılıp o pinden HIGH çıkartılmaktadır. Böylece ortak uç transistör üzerinden sürülmektedir.
İş buton kontrolüne gelince aynı pinin Giriş olarak çalışması gerekir. Çünkü butona basılınca port pinine HIGH tatbik edilecektir.
O halde buton kontrolü esnasında ilgili pini giriş yapıp buton pininin  HIGH olup olmadığına bakarım. Anlık olarak bakacağınız için kimse bundan etkilenmez. Ama butona basılı tutarsanız display ortak uçtan beslenir ve aktif hale gelir. Buda devrenin olumsuz yönü. Artık yapan faydası ile zararını tartmış ve yapmaya karar vermiş diyelim.
Bu devrede değişik mantıklar uygulamak mümkün.  Ya zaman paylaşımlı olarak önce displayleri tararım. Sonra bir anlık tuşlara bakarım.
Yada displayi sürekli tararken aktif olmayan display lerin ortak uçlarını hemen giriş yapıp tuşa basılmışmı diye bakarım.
Hepsi ile sonuç almak mümkün elbette.

Ete

huseyin

hocam bu işlemcinin özelligi olabilir mi atmega16 serisinde gördüm bu işlemi displayleri tarama yaparken ayni anda displayin aktif ucundan input aliyor ve input anlık degil sürekli geliyor
yani bir yanda tarama yaparken ayni pin üzerine inputtan high sürekli olarak geliyor

ete

Yukaridaki devrede de aynı iş yapılıyor. Kullanilan işlemci pic. Ama hangi islemci olursa olsun yontem aynı. Zaman paylasımlı giris ve çıkış işlemi.
Ete

muyat

Çok uzun zaman geçmiş.Birşey sormak istiyorum bu konuda hocam.
12f675 in analog bacaklarından birine 1k direnç ile bc337 ile röle sürüyorum ve dolaysıyla çıkış olarak tanımlı
Bu bacagı ayrıca giriş olarak tanımlayıp bu bacaga potans da baglayıp rölenin çekili kalma süresini ayarlamak mümkün müdür?Picin diger bacakları dolu çünkü.
 

ete

Aynı anda olacak diye bir şey mümkün değil maalesef. Ama değişimli olarak olabiliyor.
Burada tek dikkat edilecek şeyin pot orta ucuna aynı zamanda röleyi süren transistöründe bağlı olması. Pot un bağlı olması röle süremeye engel değil ise yada , Röle süren devre potun okunmasında bir engel yaratmayacak ise bu sistemi kullanabilirsin.

Ete

MB_77

bu mesaj tarafımdan silinmiştir.

muyat

hocam mesela 12f675 in 5 numaralı bacagına 1k transistörle bc337 takıcaz.Ayrıca 10klık potansın orta ucunu takıcaz diyelim...
İşlemci önce giriş olarak potu okuduktan sonra, tuşa basılırsa potta okunan süre kadar aynı pine baglı olan bc337 ile çektirmek istersek aşagıdaki kısımda ilgili düzeltmeyi yapabilir misiniz.

@ __config _INTRC_OSC_NOCLKOUT & _WDT_ON & _PWRTE_ON &_MCLRE_OFF & _BODEN_OFF & _CP_ON
DEFINE OSCCAL_1K 1                                        
DEFINE ADC_BITS 10 
DEFINE ADC_CLOCK 3
DEFINE ADC_SAMPLEUS 50 

CMCON = 7 ' Comparators off
ANSEL = %0000110 ' GPIO.1 A/D in, rest digital an1 ve an2
ADCON0.7 = 1 ' Right justify for 10-bit
trisio = %00111110
GPIO=0 
SYMBOL ROLE= GPIO.2 'BU PİNE POTANS TAKICAZ.
SYMBOL TUS1= GPIO.5
SYMBOL TUS2=GPIO.3
SYMBOL TUS3=GPIO.4
HAM var WORD
SURE VAR WORD
I VAR WORD

PAUSE 200

BASLA:
ADCIN 2,ham
sure=(HAM+1)*/950

IF TUS=0 THEN
HIGH ROLE                'RÖLE ÇEKİCEK
for I=0 to SUre

PAUSE 10
next 
LOW ROLE
ENDIF
pause 100
GOTO BASLA

Powered by EzPortal