tuş tarama yardımmm

Başlatan gogtugh, 16 Ekim 2014, 21:33:14

gogtugh

TUS VAR BYTE
SYMBOL ROLE=PORTA.0
SYMBOL SATIR1=PORTB.4
SYMBOL SATIR2=PORTB.5
SYMBOL SATIR3=PORTB.6
SYMBOL SATIR4=PORTB.7
SYMBOL SUTUN1=PORTB.0
SYMBOL SUTUN2=PORTB.1
SYMBOL SUTUN3=PORTB.2
PORTA=0
PORTB=0
TARAMA:
HIGH SATIR1
IF SUTUN1=1 THEN TUS=1
IF SUTUN2=1 THEN TUS=2
IF SUTUN3=1 THEN TUS=3
LOW SATIR1
HIGH SATIR2
IF SUTUN1=1 THEN TUS=4
IF SUTUN2=1 THEN TUS=5
IF SUTUN3=1 THEN TUS=6
LOW SATIR2
HIGH SATIR3
IF SUTUN1=1 THEN TUS=7
IF SUTUN2=1 THEN TUS=8
IF SUTUN3=1 THEN TUS=9
LOW SATIR3
GOTO TARAMA



bu tus tarama fonsiyonum 4*3 lük bir keypad sürekli tarayarak bastığımız tusu bulacak mantık bu fakat simülasyonu yaptığımda haliyle sürekli satırlara 1 0 veriyo ben bu tuşlara öyle basmam lazım tam denk gelmesi lazım ama böyle bişey mümkün değil haliyle yapmaya çalıtığım şey basit bi şifreli kilit devresi ama bu tarama olayını çözemedim yardım eden olursa çok sevinirim

ceyhanan

Kurduğunuz algoritmada sorun görünmüyor. Aslında sorununuzu tam olarak anlayamadım ama anladığım kadarıyla bastığınız tuşu okuyamıyorsunuz. Ama burada sorun tuşa basma zamanınızın taramaya denk gelmemesi değil, bastığınız tuşun kontrolsüz loop oluşturması gibi ya da anlamsız veri veri okuma gibi duruyor.

Burada sorunun kaynağına bulmaya çalışalım. Devrenizde pull-down direnci kullandınız mı? (Pull-up direnci ya da portbnin dahili pull-up ın kullanmanızı öneririm) eğer kullanmadı iseniz devreniz parazitlerden etkilenip basmadığınız tuşu basılmış gibi okuyabilir.

İkinci ihtimal şudur, tuş okuma yaptıktan sonra TUS değişkenini bir şekilde sıfırlamanız gerekir ki, bir tuşa basıldığında o tuş bilgisi bir sonraki döngülerde de işlenmesin.

Bu ihtimalleri değerlendirirseniz sorununuzun çözüleceğini düşünüyorum.