grafik lcd ve rb4-7 port değişim kesmesi

Başlatan oyhan, 20 Mayıs 2005, 23:48:01

oyhan

Selam arkadaşlar
128*64 grafik lcd olan bir devrede rb4-7 port değişim kesmesi kullandım. Kesmeye kadar herşey normaldi. Kesme de gerçekleşiyor. Her 4 portun birinde vey birkaçında değişim olduğunda bir kesme oluşuyor ve istediğim değişkenlerde bunu işliyorum. Ancak grafik lcd ekranım üzerinde bu vakitten sonra istenmeyen parazitler ile farklı pixel lerde işaretler beliriyor. Buna parazit dersem sanırım daha doğru olur gibi. Bu sorunu nasıl aşabilirim. Acaba port değişim lerini farklı ikinci bir işlemci ilemi takip etmeliyim. Bu sorunu tek işlmecide çözme imkanımız oloabilirmi? Sorun nerde acaba. Fikirlerinize ve tecrübelerinize ihtiyacım var. İlginiz için şimdiden teşekkür ediyor iyi çalışmalar temenni ediyorum.
Saygılarımla...
BİRLİKTEN KUVVET DOĞAR:

arslan74

Merhaba,

" rb4-7 port değişim kesmesi " program için içinde kullanman uygun değil. Çünkü kesmeler bütün bacaklarda oluyor ve bu kesmeleri düşen veya yükselen kenar diye ayıramiyorsun. Yani düşen kenarda hemde yükselen kenarda INT. oluyor. bir uç düşerken diğer uç yükeltiğinde aradaki milisaniyedende az olabilir iki tane kesme olabilir. buda programın sabitmasına neden olur. PIC18 serisinde harici 3 tane INT. var. onları kullan, yada 16 serici için girişleri diyot ile RB0 bacağına paralel bağla. Bacaklara voltaj geldiğinde RB0 int. atar. Ama Normal 1N4148 ile yanlız yükselen kenar Int. calışıyor, düşen kenarda RB0'a diyot'un üzerinde ki 0.7 Volt Bu bacakta olduğu için girişi 1 olarak algılıyor, o yüzden calışmiyor. Belki Germanium veya SCHOTTKY diyot ile Düşen kenarda ayarlanabilir, ama denemdim.

Calışmalarınızada Başarılar,

Hasan ARSLAN

baba

Uzunca bir aradan sonra merhaba arkadaşlar..


portb degisim kesmesi kullanmadan once portun son durumunu portb nin iç yazacına okumalısın
movf portb,F
nop
nop

gibi


ardından herhangi birinde degisim olursa kesme olusur.ilgili bacagin görevini işleyip donersin.GLCD ile portun bir baglantısı yok (data/clock/cs..vs) ise programında hata vardır.

...diye düşünüyorum


Kolay gelsin
ÖĞRENDİKÇE    CAHİLLİĞİM       ARTIYOR.

oyhan

Selam..
RB4-7 İNTERRUP TI ile ilgili vermiş olduğunuz bilgi için teşekkür ederim. Dediğiniz gibi rb0 int kullanmak sanırım bu durumda daha mantıklı ayrıca 18 serisi kullandığım içinde elimde 3 external int kullanma şansı var. Neyse lcd de ki sorunu anlatım benim aradığım bu idi. Teşekkür ederim...

Ayrıca bay baba glcd normal olarak çalışıyor yani RB4-7 interruptını kurmadan önce problem yok ve interruptı kurduktan sonrada problem yok. Taki bu 4 porta buton yada harici vermiş olduğum sinyallerden sonra Glcd üzerindeki pixellerde bozulmalar( tabiri caiz karmaşa) oluyor. Bu durumda glcd nin normal çalıştığı sorunun Rb4-7 interruptından kaynaklandığı ortaya çıkmazmı. Rb0 interuptını da kullanmışdım önce. Bu interruptın kurulması neticesinde bir sorun ile karşılaşmadım. Ayrıca GLCD içinde Portd, porte ve 2 adette port c den port kullanıyordum. Teşekkürler.

DECLARE LCD_TYPE GRAPHIC
DECLARE LCD_DTPORT PORTD
DECLARE LCD_ENPIN PORTE.0
DECLARE LCD_RWPIN PORTC.5
DECLARE LCD_RSPIN PORTC.2
DECLARE LCD_CS1PIN PORTE.1
DECLARE LCD_CS2PIN PORTE.2
DECLARE INTERNAL_FONT = ON
DECLARE GLCD_CS_INVERT OFF
ALL_DIGITAL = TRUE
BİRLİKTEN KUVVET DOĞAR: