tuş tarama yardımmm ???????:(

Başlatan gogtug, 22 Ekim 2014, 19:35:23

gogtug

bu işe yeni başladım pic basic pro ile ve ilk yapmak istediğim şey şifreli kilit uygulaması karşıma tuş takımı çıktı matris sistemine göre çalıştığını öğrendim mantığı anladım sonra bnu tarama yöntemiyle kullanıldığını öğrendim ama hala anlayamadım taramayı mantığı biliyorum satırlar çıış sütunlar giriş 1 ver 0 sa kısa devre falan ama zaman çok önemli değilmi bunda yani neyse sonuç olarak yapamadım tarama işini birsürü şey yazdım olmuyo sonra üni.deki elektronik hocasına sordum bu yöntem sağlıklı değil neden diye sordum uygun cristal bağlaman lazım falan dedi senkronizasyon çok önemli dedi  satırlara ve sütunlara farklı frekanslar yolla ınları topla tuşu belirle dedi bunu anlamadım yani araştırdım dtmf denilen şey tamam iyi fakat sadece bir adet pic le bunun mümkün olmadığını düşünüyorum ama tam anlayamadığım için net bişey diyemeyecem yani pic e tuş takımını bağladık bağlanan portlar çıkış verdik farklı frekansları verdik bastık tuşa nolcak nerden alcaz bilgiyi neyse sonra bide mekatronik hocasına sordum oda bu yöntem iyi değil sen array oluşturacan dedi matris oluşturman lazım dedi örnek verdi: 4,1 4,2 4,3 .... falan alt alta bundan da bişey anlamadım
sonuç olarak bu tuş taramayı anlatacak biri varmı çünkü insan bişeye takılınca devam edemiyo bunu yapmazsam devamıda gelmeyecek
yardımcı olan olursa çok sevinirim.

F®T

alttaki linki bir incele ayrıca sitenin aramasına tuş diye yaz bir sürü konu var ete hocanın ders notlarını incele biraz araştırmacı olursan bu işi kaparsın.yoksa herşey hazır olsun diye bakılırsa bu iş zor.sen karalamaya başla herkes sana yardımcı olmaya çalışır.önce bir alt yapı lazım.

http://etepic.com/index.php/topic,1834.msg18426.html#msg18426
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

gogtug

#2
Alıntı yapılan: F.T - 22 Ekim 2014, 19:59:41
alttaki linki bir incele ayrıca sitenin aramasına tuş diye yaz bir sürü konu var ete hocanın ders notlarını incele biraz araştırmacı olursan bu işi kaparsın.yoksa herşey hazır olsun diye bakılırsa bu iş zor.sen karalamaya başla herkes sana yardımcı olmaya çalışır.önce bir alt yapı lazım.

http://etepic.com/index.php/topic,1834.msg18426.html#msg18426


peki o zaman şunu yazdım fakat simlasyonda hiç bişey olmadı hata nerde o konuda yardımcı olursanız...

TRISA=0
TRISB=%00001111
OPTION_REG.7=0
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.1
SYMBOL SUTUN2=PORTB.2
SYMBOL SUTUN3=PORTB.3
PORTA=0
PORTB=0
TARAMA:
HIGH SATIR1
IF SUTUN1=1 THEN TUS=1 :gosub SIFRE
IF SUTUN2=1 THEN TUS=2 :gosub SIFRE
IF SUTUN3=1 THEN TUS=3  :gosub SIFRE
LOW SATIR1
HIGH SATIR2
IF SUTUN1=1 THEN TUS=4 :gosub SIFRE
IF SUTUN2=1 THEN TUS=5 :gosub SIFRE
IF SUTUN3=1 THEN TUS=6 :gosub SIFRE
LOW SATIR2
HIGH SATIR3                           
IF SUTUN1=1 THEN TUS=7 :gosub SIFRE
IF SUTUN2=1 THEN TUS=8 : gosub SIFRE
IF SUTUN3=1 THEN TUS=9 : gosub SIFRE
LOW SATIR3
GOTO TARAMA
  SIFRE:
  IF TUS=1 THEN
  GOSUB SIFRE2
  ELSE
  GOSUB TARAMA
  ENDIF
  SIFRE2:
  IF TUS=2 THEN
  HIGH ROLE
  PAUSE 100
  LOW ROLE
  ELSE
  GOTO TARAMA
  ENDIF





F®T

#3
TRISA=0
TRISB=%00000111     'burda ilk dört biti giriş yapmışsın ilk üç biti giriş yaptım
PORTA=0
PORTB=0
OPTION_REG.7=0
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.1
SYMBOL SUTUN2=PORTB.2
SYMBOL SUTUN3=PORTB.3

tus=0

TARAMA:

HIGH SATIR1
IF SUTUN1=1 THEN TUS=1 :gosub SIFRE
IF SUTUN2=1 THEN TUS=2 :gosub SIFRE
IF SUTUN3=1 THEN TUS=3  :gosub SIFRE
LOW SATIR1
HIGH SATIR2
IF SUTUN1=1 THEN TUS=4 :gosub SIFRE
IF SUTUN2=1 THEN TUS=5 :gosub SIFRE
IF SUTUN3=1 THEN TUS=6 :gosub SIFRE
LOW SATIR2
HIGH SATIR3                           
IF SUTUN1=1 THEN TUS=7 :gosub SIFRE
IF SUTUN2=1 THEN TUS=8 : gosub SIFRE
IF SUTUN3=1 THEN TUS=9 : gosub SIFRE
LOW SATIR3

GOTO TARAMA

  SIFRE:             
  IF TUS=1 THEN
  GOSUB SIFRE2
  ENDIF
  return         'her gosub ile gönderdiğini return ile geri döndüreceksin
 
 
  SIFRE2:
  IF TUS=2 THEN
  HIGH ROLE
  PAUSE 2000 'BU SÜREYİ UZUN TUTALIM GÖRMEK İÇİN
  LOW ROLE
  ENDIF
  return
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

gogtug

#4
 derlediğimde then endif siz kullanılmaz hatası alıyorum theni yanına mı almam gerekiyo

gogtug

#5
Alıntı yapılan: F.T - 22 Ekim 2014, 21:08:29
TRISA=0
TRISB=%00000111     'burda ilk dört biti giriş yapmışsın ilk üç biti giriş yaptım
PORTA=0
PORTB=0
OPTION_REG.7=0
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.1
SYMBOL SUTUN2=PORTB.2
SYMBOL SUTUN3=PORTB.3

tus=0

TARAMA:

HIGH SATIR1
IF SUTUN1=1 THEN TUS=1 :gosub SIFRE
IF SUTUN2=1 THEN TUS=2 :gosub SIFRE
IF SUTUN3=1 THEN TUS=3  :gosub SIFRE
LOW SATIR1
HIGH SATIR2
IF SUTUN1=1 THEN TUS=4 :gosub SIFRE
IF SUTUN2=1 THEN TUS=5 :gosub SIFRE
IF SUTUN3=1 THEN TUS=6 :gosub SIFRE
LOW SATIR2
HIGH SATIR3                           
IF SUTUN1=1 THEN TUS=7 :gosub SIFRE
IF SUTUN2=1 THEN TUS=8 : gosub SIFRE
IF SUTUN3=1 THEN TUS=9 : gosub SIFRE
LOW SATIR3

GOTO TARAMA

  SIFRE:             
  IF TUS=1 THEN
  GOSUB SIFRE2
  return         'her gosub ile gönderdiğini return ile geri döndüreceksin
 
 
  SIFRE2:
  IF TUS=2 THEN
  HIGH ROLE
  PAUSE 100
  LOW ROLE
  return




simülasyonda gene bişey olmuyo normalde 1 adrdından 2. tuşa basıldığında yanmasını istiyorum ben ama olmuyo

F®T

mesajda değişiklik yaptım dalgınlığıma gelmiş bir daha bak istersen.
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

gogtug

Alıntı yapılan: F.T - 22 Ekim 2014, 21:49:37
mesajda değişiklik yaptım dalgınlığıma gelmiş bir daha bak istersen.

tekrar yaptım tarıyo ama tuşlara basılınca gene hiç bişey olmuyo delirecem ya acaba bida bakabilirmisiniz :(

F®T

istersen şöyle yap sifreye girdiğini anlamak için şifre kısmına bir led yak söndür.ayrıca sen tuş 1 e bastın prog gitti baktı tuş 1 ardından tus 2 ye bastın prog basa döndü baktı tuş iki ama bu sefer sifre ye girip tuş 2 ye nasıl gidicek bu kısmı bir düşün.senin prog sadece bu şekilde sifreye girer.başkada bi yere girmez :)
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

F®T

gogtug yorum yap biraz.program satır satır çalışıyor önüne gelen satırı işliyor.sen 1 e bastın sonra yolladın şifreye sonra baktın tuş 1 zaten tuş 1 oraya gittin.ordanda şifre 2 ye yolladın ama tuş zaten 1 .sen 2 ye bassanda 1.ne zaman 2 olacak program başa dönüp bakacak tuş 2 .tamam tuş 2 oldu tekrar şifreye yolladın şifrede tuş 2 olunca zaten şifre 2 ye girmeden geri döndü.elde ne var sıfır var.mantığını kullanıp bu kombinasyonu bulursun.belkide çözüm çok kolaydır.
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

gogtug

Alıntı yapılan: F.T - 22 Ekim 2014, 22:20:43
gogtug yorum yap biraz.program satır satır çalışıyor önüne gelen satırı işliyor.sen 1 e bastın sonra yolladın şifreye sonra baktın tuş 1 zaten tuş 1 oraya gittin.ordanda şifre 2 ye yolladın ama tuş zaten 1 .sen 2 ye bassanda 1.ne zaman 2 olacak program başa dönüp bakacak tuş 2 .tamam tuş 2 oldu tekrar şifreye yolladın şifrede tuş 2 olunca zaten şifre 2 ye girmeden geri döndü.elde ne var sıfır var.mantığını kullanıp bu kombinasyonu bulursun.belkide çözüm çok kolaydır.

o zaman şifre2 ye göndermeden önce tusu sıfırlayıp tekrar taratmam lazım galiba

F®T

Tuşu sıfırlatmana gerek yok.şifre 2 ye girince tuşa bakarsın.programı ona göre düzenle bakalım.
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

gogtug

Alıntı yapılan: F.T - 22 Ekim 2014, 22:35:08
Tuşu sıfırlatmana gerek yok.şifre 2 ye girince tuşa bakarsın.programı ona göre düzenle bakalım.
o zman şifre2 ye girdiğimiz de başa goto tarama yapsak tekrar gitse baksa

ete

#13
Sorunun çözümü desimal sistemin mantığında.
12 rakamına bir bak istersen. 12 elde etmek için önce 1 rakamına basıyorsun sonra 2 ye. Adım adım gidersek;
-TUS=1, BASILAN=1
-TUS=2, BASILAN=12
Dikkat edersen 2 rakamı birler basamağında duruyor. Ama 1 önce birler basamağında iken sonra onlar basamağına geçiyor.
O halde ben BASILAN isimli bir değişken tanımlasam;
BASILAN=BASILAN*10+TUS şeklinde bir formül kullansam ne olur ? yine adım adım bakalım.
-BASILAN=0
-TUS=1:BASILAN=0*10+1=1
-TUS=2:BASILAN=1*10+2=12
İşte şimdi IF BASILAN=12 ise git şunu yap diyebilirsin artık.
BU arada bir tuşun basılıp basılmadığını anlamak için mutlaka tuş basılma kontrolü yapman gerekir. Tus kendi kendine 2 olamaz herhalde.  Ohalde basılan tus adedi 2 adet oluncaya kadar daima tus taramaya gidip basılan tus varmı diye bakman ve basılan tusları BASILAN formülüne vermen gerekir.
Formüle basılmayan tusları vermemek için TUS tarama kısmında TUS=255 değerini ver.
Tarama kısmının sonuna da BASILAN formülünden önce,
IF TUS=255 then Tekrar tarama ya yollaman gerekir. Aksi halde 255 değeri tus değeri gibi hesaplamaya sokulur.

Programlama kurallarını öğrenmeden kod yazmaya çalışmak iyi bir şey değil. Programında hatalar var.
  SIFRE:             
  IF TUS=1 THEN
  GOSUB SIFRE2
  return
satırlarına bakarsan ENDIF komutunun olmadığını görebilirsin. Bu derleyicide hataya sebep olur.
Bir IF komutu bir kaç şekil kullanılır.
IF A=1 THEN C=0
şayet bir şart ve bir sonuç var ise THEN den sonra hemen sonucu yazarız. Bu şekilde endif kullanmayız.
İki veya daha fazla sonuç var ise ENdif kullanalıyız.
IF A=1 THEN
  B=10
  C=1
ENDIF
Burada ENDIF İf komutunun sonlandığını göstermek amacı ile kullanılmalıdır.

Bir başka şekilde;
IF A=1 THEN  'şayet A=1 ise
  C=5             'C=5 olur
ELSE             'değilse yani A=1 değilse
  C=1            'C=1 olur.
ENDIF

Ete

F®T

düşündüklerini yap.sonucunu gözle ve olmamışsa düşünmeye devam et.yanlız tarama olayını ana döngüde yapıyorsun oraya gönderdin goto ile yine şifreye gelecen bi bakacak tus 2 sifreye girmicek ve sifre2 ye gitmicek.ben olsam şöyle yapardım .taramayı alt progda yapardım diğer işlerimi ana döngüde yapardım istediğim zaman tuşa yolar geri getirip istediğim işlemi yaptırırdım.
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

Powered by EzPortal