Haberler:

Forum kuralları güncellendi LÜTFEN  okuyunuz:  https://bit.ly/2IjR3ME

Ana Menü

int_rb kesmesi

Başlatan sdonmez, 04 Haziran 2008, 20:16:53

sdonmez

yazdığım bir programda #int_rb kesmesi kullandım.  Sadece B6,B7 girişlerinin lojik seviyelerindeki değişmeleri algılamak istiyorum.  Dolayısıyla trisb'ye 11000000 ataması yaptım. Yani diğer tüm pinler çıkış konumunda. B1'e led bağlı durumda ve program başlangıçında HIGH olarak set ediliyor.
Fakat #int_rb kesme alt programının başında PortB nin okunması gerektiği için
x=input_b();
komutunu kullandım.
Buraya kadar herşey normal fakat bu komut işlendiğinde tüm pinler "giriş" olarak set edildiği için sanırım B1'deki led LOW seviyeye düşüyor ve işler karışıyor.
Biraz uzun oldu ama sanırım anlatabildim.  Sorunu nasıl çözebilirim?

Saygılar..

sdonmez

The interrupt-on-change feature is recommended for
wake-up on key depression operation and operations
where PORTB is only used for the interrupt-on-change
feature. Polling of PORTB is not recommended while
using the interrupt-on-change feature.

datasheetteki bu paragrafı okuyunca anladım.  Ama bir yolu olmalı!

sifirzero

x=input_state(pin_b1);
@sdonmez  bu şekilde  dene istersen
sifirzero.blogspot.com [email]sifirrzero@gmail.com[/email] iman hem nurdur hem kuvvettir

selimkoc

#3
https://elektrokod.wordpress.com/2013/10/12/portb-change-interrupt-portb-degisim-kesmesi/

linkindeki açıklamalara bir göz gezdir. Yine problem varsa yardımcı olalım.

X değişkenini 6 bit sağa kaydırıp kalan 6. ve 7 bitleri kullanabiliriz. Veya maskeleme yaparak 6 ve 7 bitler haricini sıfırlayabiliriz.

sadogan

Portb yi fast i/o olakak tanimladinizmi

vitruvius

Konu 2008'den kalma arkadaşlar.

elektronik

9 yıl sonra  int_rb kesmesi meydana geldi , kim butona bastı

tekosis

zaman kapsülü gibi site :)
İlim ilim bilmektir, ilim kendin bilmektir, sen kendin bilmezsin, bu nice okumaktır.