pic çalışma sorunu

Başlatan bahdiyarusta, 18 Aralık 2014, 00:15:05

bahdiyarusta

merhaba hocam

ekteki devreyi yaptım kurdum deniyorum.
fakat keypad bağlantısını ters çizmişim onu kartta düzelttim. fakat farklı bir sorunum var.
cihaz ilk açılışta mod seçimi istiyor burda * ve # tuşları na basıyorum problem yok
ikinci ekranda başlama değeri yazısını görünce tuşlara basıyorum çalışmıyor.
ama elimi pice dokunuyorum o zaman çalışıyor. bu seferde örneğin  5 e basacaksam 5 e basıyorum 5555 yazıyor ekranda 5 sabit kalmıyor...  4 e basıyorm 4444 yazıp sıfırlanıyor böyle bir sorunum var elimi pice değdirince olay bu oluyor. tuşlardan gelen bilgi pice direk giriyor gibi çizdim oraları 4k7 ile şaseye çektim butonlara basınca 1 geliyor picin boştaki uçlarını 4k7 ile şaseye çektim. girişte 100uf 7805 çıkışında 10nf var. 4mhz 22pf cap var. program sigorta ayarları kodda yazdığı gibi bu sorun ile baş edemedim yardımlarınızı beklıyorum..

teşekkürler...
<<<***bahdiyarusta****>>>
                  - 66 -

Hattuşa

bahtiyar ustam sorunun karttan mı kaynaklı yoksa yazılımsal mı? yani isisde kodu denediğinizde doğru çalışıyorsa probleminiz muhtemelen karttan kaynaklıdır diye düşünüyorum.

sonmoikan

#2
Sayın Bahdiyar usta similasyon da denelerini yaptım. Sorun Yazılım ile alakalı.
Tuş taraması çok hızlı olduğu için sıkıntı çekiyorsun.
Her tarama bitimine 100ms bir gecikme koymalısın.


MBAS:
LCDOUT $FE,1,"MOD SECIMI YAPIN"   
LCDOUT $FE,$C0,"*:ILERI   #:GERI"
PAUSE 150 
PORTD.0=1
IF PORTC.0=1 THEN  Tus = 1 '1 tuşuna basıldı
IF PORTC.1=1 THEN  Tus = 2 '2 tuşuna basıldı
IF PORTC.2=1 THEN  Tus = 3 '3 tuşuna basıldı
PORTD=0
   
PORTD.1=1
    IF PORTC.0=1 THEN Tus = 4 '4 tuşuna basıldı
IF PORTC.1=1 THEN Tus = 5 '5 tuşuna basıldı
IF PORTC.2=1 THEN Tus = 6 '6 tuşuna basıldı
    PORTD=0
   
PORTD.2=1
IF PORTC.0=1 THEN Tus = 7 '7 tuşuna basıldı
IF PORTC.1=1 THEN Tus = 8 '8 tuşuna basıldı
IF PORTC.2=1 THEN Tus = 9 '9 tuşuna basıldı
    PORTD=0
   
PORTD.3=1
IF PORTC.0=1 THEN GOTO ILERISAY '* tuşuna basıldı
IF PORTC.1=1 THEN TUS = 0 '0 tuşuna basıldı
IF PORTC.2=1 THEN GOTO GERISAY '# tuşuna basıldı
    PORTD=0
    PAUSE 100    ; buraya eklemen yeterli     
    GOTO MBAS


ayrıca kodları çok fazla uzatmışsın daha kısa yazılabilir.
Örnegin : tuş taramayı bir fonsyon yap, nerede ihtiyacın olursa fonksyonu çağır.
ABDULLAH

bahdiyarusta

hmm. onu düzeltip deneyeceğim akşam eve geçebilirim anca. teşekkür ederim.
ama bir de elimi pice değdirince çalışıyor sistem bu neden kaynaklı.
<<<***bahdiyarusta****>>>
                  - 66 -

rexo

Alıntı yapılan: bahdiyarusta - 18 Aralık 2014, 09:21:30
hmm. onu düzeltip deneyeceğim akşam eve geçebilirim anca. teşekkür ederim.
ama bir de elimi pice değdirince çalışıyor sistem bu neden kaynaklı.

İşlemcinin tam ortasında R5 olduğu yere 100 nf tak yani işlemcinin en yakın beslemesine takacaksın,

İşlemcinin kullanılmayan Portlarını  Giriş olarak ayarla
MCRL  4K7 tak programına bakmadım kapalı ise  gerek yok

bahdiyarusta

tamam hocam dediklerinizi yapacam teşekkür ederi,.m
<<<***bahdiyarusta****>>>
                  - 66 -

ete

#6
Sorun hem yazılımda hemde donanımda.
Yazılım sorunu, programın basit mantıkla yazılmış olmasından ve aynı satırların birden fazla yerde kullanılmış olmasından kaynaklanıyor. Kusurlar çok fazla tek tek açıklamak zor burada. Ama şunu hemen belirteyim. Tuş takımında bir tuşa basıldığı zaman TUS=x diye bir değer aldıktan sonra oradan çıkılırsa ortalık karışıyor. Zaten program karmaşık bir kez daha karışık hale geliyor.
Önce tuşun bırakılıp bırakılmadığı kontrol edilmeli sonra tuş değerine bakılarak gereken yapılmalı.
Donanım hatasına gelince, Pulldown çalışan tuş takımlarında çıkış çalışan pinleri tuş takımına 1K direnç ile bağlamak gerekiyor. Bunu yapmazsanız kısa devre olmuş gibi sistem bir noktada çakılıyor. Bu nedenle devreye bu dirençleri ekledim.

Sonuçta bu program tek bir tuş tarama alt programı ile çalışabilirken aynı tarama satırları 5 kere yazılmış.
Sürekli söyleriz GOSUB diye bir komut var. Bir birinin aynısı olan bu 5 defa yazılmış tuş tarama satırlarını bir kere yazıp alt programa almak ve oradan dönüşte ne yapacaksan yapmak en doğrusu iken böyle yazılarak iş zor hale getirilmiş.
Kontrol da kayboluyor bu şekilde.

Her neyse ilişikteki programı olması gereken şekilde değiştirdim. Ancak yinede tek bir tuş tarama alt programı şeklinde yazmadım. Program amacını bilmeden bu değişikliği yapmam zor. Birde zaman alacak bir iş o yüzden Bahtiyar kendin yaparsın.

Ete

bahdiyarusta

tamam hocam
eve geçince gerekli işlemleri yapacağım.
ilginiz için çok teşekkür ederim.
birde picin boştaki uçlarını 4k7 ile şaseye çektim bu problem olur mu?
<<<***bahdiyarusta****>>>
                  - 66 -

ete

#8
olmaz.

Yeri geldikçe sürekli yineliyorum. Adamlar PORTB diy ebir port ayarlamış ve dahili pullup eklemişler. Bu nedenle PORTB daima tuş, anahtar, tuştakımı gibi genelde giriş pinleri olarak kullanılmalıdır. Tuş , anahtar veya tuştakımı her neyse daima pullup olarak kullanın. Bu size hem malzeme tasarrufu sağlar hemde çalışmada kolaylık getirir.
Umarım bu dediklerimi bir sonraki tasarımında uygularsın.
ete

ete

#9
Bu arada programı kısalttım ve tek tuş tarama alt programı ile hepsini hallettim. Böylece derlemede 426 word tasarruf etmiş olduk.Bazı düzenlemeler de ekledim. İleri geri saymalarda 1sn süre geçmeden direk bir fazlası yada bir eksiği ile çalışıyordu sayma işlemi. Şimdi normal hale gelmiş oldu.

Bu hali ile program daha stabil çalışıyor. Merak edenler için ilişiktedir.

Ete

bahdiyarusta

hocam çok teşekkür ederim. sistem 10 numara çalıştı çok saolun
yardın eden arkadaşlara ç.ok teşekkür ediyorum.
projem güzeldir hocam projelere eklersek arkadaşlara lazım olabilir...
bende bu işi profosyenel yapmamıyorum zaten bildiklerim ile üzerine koyarak ufaktan işler yapmaya çalışıyoruz.

iyi çalışmalar
<<<***bahdiyarusta****>>>
                  - 66 -

ete

Projelere koyacak kadar anlam ifade eden bir proje değil.
Koymaya gerek yok. İlgilenen buradan bakar.

Ete


Powered by EzPortal