TUS OKUMA

Başlatan dedim, 25 Temmuz 2015, 09:16:32

dedim

ete usta
burda tus okuma bölümünde tusu saydıramadım.yapmak istedigim tusa 5 defa basıp cekınce BIR etıketıne gitmekti.ama olmuyor
TUSBAK:
ADCIN 0, HAM             
  If HAM>835 Then
  SAY=0
  While HAM>835
   SAY=SAY+1
   DelayMS 100
   If SAY =5 Then GoTo BIR
    Wend
   EndIf 

butona 5 defa basıp cekınce nasıl BIR etıketıne dallanacagım.BURDAKI yazılımda tusa basınca say degerı 5 e kadar kendı gelıyor.ben her tusa basıp bırakınca 1 arttırmak ıstedım.basıp bıraktım 1 basıp bıraktım 2 basıp bıraktım 3 bu sekılde 5 defa sayabılmek ıcın ne yapmam gerekıyor

ete

Alıntı YapTUSBAK:
ADCIN 0, HAM             
  If HAM>835 Then
  SAY=0
  While HAM>835
   SAY=SAY+1
   DelayMS 100
   If SAY =5 Then GoTo BIR
    Wend
   EndIf
Ben senin sistemi unuttum bu nedenle örneklemeli ve varsayımla anlatacağım.
Tuşa basılınca ADC değeri 835 den büyük olduğunu varsayıyoruz.
SAY değeri program başında sıfırlanmalı ve her SAY=5 olduğunda önce SAY=0 yapılıp sonra program nereye gidecekse gönderilmelidir. Sen her ADC ye gelişte SAY=0 dediğin için say değeri hiç bir zaman 5 olmayacaktır. Sürekli 1 ve sonra sıfır olacaktır. Bu tür şeyler bir mantık kuralı gibi işler. Bunları mantık çerçevesinde düşünebilmek gerekir.  Her zaman söylerim yazdığınız kodu daima satır satır kafanızda çalıştırıp olası sonuçlarını değerlendirin. Bakarmısın yazdığon kod'a
ADCIN 0, HAM             
  If HAM>835 Then
  SAY=0
Satır satır değerlendirirsek,
ADC değerini oku
HAM 835 denbüyük ise yani tuşa basılmış ise
SAY=0 yap.
Bu kadar basit bu SAY=0 yap komutu her tuşa basıldığında çalışacağı için SAY değeri sıfır değerini aşamaz.

Alıntı YapTUSBAK:
ADCIN 0, HAM             
  If HAM>835 Then  'tuşa basılmış ise
     SAY=SAY+1
     IF SAY=5 then
        SAY=0:GOTO BIR
      ENDIF
     While HAM>835:WEND  'tuşu bırakıncaya kadar bekle
     DelayMS 100
  EndIf

Ete

dedim

ete usta bu sekılde de okuma yapmadı
TUSBAK:
ADCIN 0, HAM             
  If HAM>835 Then  'tuşa basılmış ise
     SAY=SAY+1
     IF SAY=5 then
        SAY=0:GOTO BIR
      ENDIF
     While HAM>835:WEND  'tuşu bırakıncaya kadar bekle
     DelayMS 100
  EndIf


dedim

USTA senin için mumkunse programın tamamını gönderıyorum isis de içinde işin içinden bir türlü cıkamadım.adc kanalındakı butona 5 sanıye basınca en sagdakı role 2 defa acılıp kapanıyor.devrenın acıldıgını anlıyorum.burda sıkıntı yok.sorunum select case de butona basınca case 1 den calısmaya baslıyor.tekrar basınca case 2 calısıyor tekrar basınca case 3 calısıyor.tekrar basınca da devre kapanıyor.burda da bır sıkıntı yok.şöyle calısmasını istemıstım

butona 1 defa basıp cekınce park yazan role 2 defa acılıp kapancak .case1 dekı program calısacak.
butona 2 defa basıp cekınce park yazan role 4 defa acılıp kapanacak .case 2 dekı program calısacak.
butona 3 defa basıp cekınce park yazan role 6 defa acılıp kapancak .case 3 dekı program calısacak.

diger pinlerdekı ledler hangı case calısıyorsa o yanıp sonuyor hangı case calısıyor diye görmek ıcın koymustum.


Bu sekle getıremedım bir türlü
yardım edebilirmisin usta

ete

Dünyanın en zor işlerinden birisi program tadilatıdır. Heleki programa hakim değil isen kendi yazdığın programda bile aylar sonra tadilat yaparken zorlanırsın. Üstelik programı birde sen yazmamış isen hepten zorlanırsın.
Şimdi programına baktım. benim açımdan bir sürü olumsuz yönü var. En başta Proton ile yazılmış. Hadi bunu dert etmeyeyim dedim. İstediklerine bakıyorum ama ne istediğini bile anlamakta zorlanıyorum. Programa bakıyorum senin isteklerine uygun yazılmamış. Bu gibi durumlarda ben bütün hepsini siler yeni baştan yazarım programı. Yapayım dedim ama yazılmış programa bakıyorum bir sürü alt program var ne amaçla yazılmış belli değil. Verdiğin açıklama yetersiz. Birde proton meselesi varki yapamadım. Kusura bakma. Sadece şunu söyleyeyim. İstediklerini yapamamanın başlıca sebeplerinden birisi olur olmaz yerlerde DelayMS komutunu kullanmış olman. Bir Sıra değişkeninin artabilmesi için bir sürü zaman geçmesi gerekiyor ki muhtemelen bu kadar tuşa basımıyorsundur. Bence otur ve led yakıp sönmedeki gecikmeler hariç diğer gecikmelerin tamamını sil bence.
Programda Park diye bir şey de göremedim. yanlış program mı yolladın acaba.
Bence oturup iyi bir program senaryosu yaz. Bak yukarıda basitçe bir senaryo yazmışsın. Ama her şey çok açık değil. En baştan kim ne yapacak ise oturup yaz onları.

Ete

dedim

ete ustam kızmaca yok.özelıne yazdım bu konuyla ılgılı acıklamaları sema da yazdım butonların ne ıs yaptıgını

ete

Evet kızmaca yok. bende özeline yazdım. Bu işin muhtemel nasıl yapılacağını. Başka elimden bir şey gelmiyor maalesef.
Çünki ne yapmak istediğini bilemiyorum. Programın bunlara uygun değil. Ben olsam yeniden yazardım diiyorum sen eskisini tadil etmem için uğraşıyorsun ama olmaz çünki neresinden tutacağımı kestiremiyorum. Sen yapacaksın çaresi yok.

Ete

EMKE

Bu programın amacı nedir senaryoyu baştan yazman lazım donanımı baştan oluştur ortaya şema koy, program ne yapıcak adım adım yaz yardımcı olabilceğimiz birşey varsa oluruz .

Powered by EzPortal