çözüm bulanın elini öperim

Başlatan kadir17, 17 Kasım 2015, 10:57:31

kadir17

merhaba bir semamız ve bunun yazılımı var ama nerelerde ne hatası var anlam veremedim durup dururken ekranda kendi kendine karışmalar oluyor kendi kendine bağlantı algılıyor çözemedim acaba bu devreyi adc ölçerek mi çalıştırsak hatalarımız neler acaba bilgi verebilecek birisi var mı sema ve yazılım eklendi yazılım 12 adet 12f serisi var hepsi yazılımı ayrı 12 adet yazılım var hata nerede delirtti bu beni

Hattuşa

bu şekilde sorununuza cevap bulabileceğinizi sanmıyorum. zira elektronik dünyasında herkes yoğun bir şekilde bişeylerle uğraşıyor. hiç kimse böyle bir durumda işini gücünü bırakıp yazdığınız kodda hata araması yapamaz. yada empati yaparsanız. bir dünya kod var.siz olsanız nerede ne yapılmış çözmek için saatlerce uğraşırmısınız?
peki nasıl sorununuzu çözebiliriz?kodunuzu buraya eklersiniz adım adım hata ara aranabilir. yada takıldığınız yerleri sorabilirsiniz. nasıl yapmalıyım gibi.
mesela şemanızı açtım. gözüme bir dünya buton takıldı, bu butonları buton gibi mi düşündünüz eğer öyleyse bunların pullup dirençleri nerde? 12F675 kullanmışsınız, benim bildiğim bu işlemcide seri haberleşme yok, gelen dataları nasıl almayı planlıyorsunuz? son olarak yapmaya çallıştığınız devre ne devresi? yani işlemciye neler yaptırmayı planlıyorsunuz?

ete

Sorun stack taşması. 16F877 de bu sorun var.
Şema eksik. Butonların Pulldown dirençleri yok. Yalnızca 2 adedinde gördüm.
Sorunun yeride ;
bekle:
      d=0
      pbek=1
      c=ERead 1
      DelayMS 10
      For b=0 To 1500
        If onay=0 Then GoSub para
        If c=d Then GoTo devam
        DelayMS 10
      Next
para:
If onay=0 Then GoTo para
d=d+1
Return
GoTo basla

burası.
Sorunu yaratanda d=d+1 komutundan sonra yer alan RETURN komutu.
Zira Bekle isimli etikete GOTO ile geliniyor ama dönerken buradan RETURN ile dönülmek zorunda kalınıyor.
Halbuki Goto ile gelmiş isem nereye dönecek isem GOTO ile dönmem gerekir. Muhtemelen Next komutundan sonra bir Goto Bekle yazmak gerekir oraya. Çünki Bu bölüm bir bekleme yaratıp onay tuşuna basılmasını sağlayacak. Onay tuşu sürekli HIGH da bekliyor. Bu da bir tasarım hatası bazı tuşlar LOW da bekliyor bazıları HIGH da bekliyor. Devrede bir uyum olması gerekirdi. Hepsi aynı beklemeli bence. Her neyse. Şayet next satırından sonra bir goto bekle veya Goto Basla koyulur ise sorun düzelir. Zira döngü içinden yapılan Gosub Para göndermesi onay tuşuna basılıncaya kadar orada bekletir. Onay=1 oluncada D=D+1 yapılarak program BASLA satırına döner.

Bir çok lüzümsuz komut gördüm. Biirini söyleyeyiim.
If t1=0 Then
               Print At 1,1,"T1:KPL "
            ElseIf t1=1 Then
               Print At 1,1,"T1:HZR "
               GoTo bekle
            EndIf

T1=0 ise Print AT 1,.... diye başlayan satır icra ediliyor. Değil ise tekrar bir if sorugusu yapılmış. ELSEIF T1=1 ise
T1 bir butondur. İki konumu var. Ya LOW (0), yada HIGH (1) sıfır değilse zaten 1 den başka bir değer alamaz iken neden oraya ELSEIF T1=1 yazılmış lüzumsuz bence. ELSEIF yerine direk ELSE yazmak daha doğru.
Daha çok var.

Ete


Powered by EzPortal