Delayms komutunun sıkıntı çıkardığını farkettim. Şöyle ki
1ms ile teste başladığımda süreyü doğru görüyorum, yükselttikçe süre azalan yönde hassaslığını kaydediyor.
Problem bende mi öğrenmek istiyorum. Küçük bir test yapabilecek arkadalş varmıdır,
Dosyalar hazır,
https://hotfile.com/dl/195570627/0ad2b86/time_test.rar.html (https://hotfile.com/dl/195570627/0ad2b86/time_test.rar.html)
veya
http://s2.dosya.tc/server/GaYYo1/time_test.rar.html (http://s2.dosya.tc/server/GaYYo1/time_test.rar.html)
--------
Yapılacak işlem
DelayMS 1 ''' bu satırdaki bekleme değeri yukseldikçe doğruluk azalıyor
Bu değeri
1, 10, 50, 100, 500, 1000 olarak denemek,
Bendeki değerler şu şekilde
Açılışta bekleme için 11us gecer, sonra esas süreyi görürüz.
(http://s11.postimg.cc/cs6h3u6hv/1ms.jpg) (http://postimg.cc/)
1 ms (http://postimg.cc/)
(http://s7.postimg.cc/81iesvh5n/10ms.jpg) (http://postimg.cc/)
10 ms (http://postimg.cc/)
(http://s3.postimg.cc/4cjxrh7s3/50ms.jpg) (http://postimg.cc/)
50 ms (http://postimg.cc/)
(http://s13.postimg.cc/awpj041nb/100ms.jpg) (http://postimg.cc/)
100 ms (http://postimg.cc/)
(http://s16.postimg.cc/x59yfiec5/500ms.jpg) (http://postimg.cc/)
500 ms (http://postimg.cc/)
(http://s8.postimg.cc/7wqgk9yr9/1000ms.jpg) (http://postimg.cc/)
1000 ms (http://postimg.cc/)
-------
Protondan mı ISIS den mi anlayamadım,
o sebeple bende derlenen hexleri de ekliyorum,
https://hotfile.com/dl/195572182/0c25faa/hex.rar.html (https://hotfile.com/dl/195572182/0c25faa/hex.rar.html)
..
Hocam malesef sorun sizden kaynaklanıyor.bende bir sorun olmadı istenen sürenin çok az üstünde oluyor.düşüş olmadı.
proton 3.2.5.5 ısıs 7.10
hocam hex leri baska yere atabilirmisiniz 2 dosyayı indirtmiyor hotfile.
Peki direk benim hexleri deneme imkanınız varmı?
Sorun proton'dan mı isis'den mi onu anlamak istiyorum.
mesaj birleştirme:: 22 Şubat 2013, 21:51:33
Veya sizin hexleri gönderebilirsiniz ben denerim.
hocam hex leri baska yere atabilirmisiniz 2 dosyayı indirtmiyor hotfile.
tamam hocam deniyorum.
http://s2.dosya.tc/server/ppLoQM/hex.rar.html (http://s2.dosya.tc/server/ppLoQM/hex.rar.html)
veya
http://www.yukletr.com/download.php?file=44fa37bc9ba24f1bf1c618f65c88f304 (http://www.yukletr.com/download.php?file=44fa37bc9ba24f1bf1c618f65c88f304)
OG hocam resimlerde ne ise sizin hex ler aynı sonucu veriyor.ısıste değil demekki.
önemli değil hocam saygılar.hayırlı akşamlar.
Tamam çok teşekkür ederim.
Ben de denedim. Bence bu kısımda sorun yok. süreyi tutturmak için derleyici bazı hesaplar yapıyor sonuçta bunun küsüratı var onları yuvarlamak zorunda. bana kalırsa şöyle birçözüm yerinde olur.
Bize hangi gecikme lazım? diyelim 1000, 10000 100000 ms
Bunlar için alt program yapıyoruz. orada ince hesap yapılmış kesin süre tutturulmuş mesela
gosub gecik1000
...
gecik1000:
delayus 988
return
OG hocam az önce denedim kesin süre bu şekilde . 1000ms lazımsa delayus 988 diyebilirsin. tabi dallanma ve dönme süresi de dikkate alınması gerek. Ben senin örneği proteusta aşağıdaki gibi denedim. süre acayip kesin. 1000ms !
basla:
GPIO.2 = 1
delayus 988 ''' bu satırdaki bekleme değeri yukseldikçe doğruluk azalıyor
GPIO.2 = 0
bekle:
clrwdt
delayms 100
clrwdt
goto bekle
proton 3545 kullanıldı
mesaj birleştirme:: 24 Şubat 2013, 21:15:05
Bu da kesin 10ms
basla:
GPIO.2 = 1
delayus 9987 ''' bu satırdaki bekleme değeri yukseldikçe doğruluk azalıyor
GPIO.2 = 0
Alıntı YapDelayMs is oscillator independent, as long as you inform the compiler of the crystal frequency
to use, using the Declare directive.
Yani ne demek? dahili osilatörü kullanıyor. bunun değerini declare ile farklı belirttiysek ona göre hesaplıyor. çok kesin değer lazımsa benim yaptığım gibi denemek uygun değeri tutturmak gerek.
Hocam uğraşmışsınız, tamam, güzel de, derleyicinin zaten delayms veya delayus için alt programları vardır, yani bizi uğraştırmak yerine @Les uğraşmış olmalı, yoksa dediğiniz gibi bir şekilde çözülür.
Ayrıca @F.T kendi versionunda deniyor doğru çıkıyor, daha üst versionda sorun var. Yani telefonda söylediğinize hak veriyorum. Proton, ömrünü bitiriyor gibi.
Düzgün çalışan versiyon hangisiymiş hocam ben onu not alayım. başımız sıkışırsa onu kullanalım.
Tamam proton 3.2.5.5 demiş
Alıntı yapılan: F.T - 22 Şubat 2013, 21:42:47
Hocam malesef sorun sizden kaynaklanıyor.bende bir sorun olmadı istenen sürenin çok az üstünde oluyor.düşüş olmadı.
proton 3.2.5.5 ısıs 7.10
bencede OG hocamın dediği doğru .yeni versiyonlarda hataların düzeltilmesi gerekiyor ama bunlar eski versiyonda hata olmayan kısmıda bozmuşlar.
bunlar diye bir şey yok. tek kişilik ekip var. ama üstüruplu şekilde bildirirseniz ikna olacak sorunu düzeltecektir. bence bu sorun gerçek sorun değil . daha ne sorunlar var. mesela sağa veya sola kaydırılacak bir bayt var. kayınca kod sapıtıyor pic kitleniyor. buna durduk yerde +1 ekliyorum. bunu ekleyince sorun düzeliyor. eklenen +1 in önemi yok zaten bölüp çarpınca gidiyordu.
Böyle sorunlar projeye göre değişir. düzgün çalışan kodun başına şu sürümle derlendi diye yazıyorum. o proje derlenirken o sürüm kullanlacak.
ben protonu D:\ proton klasörüne kuruyorum. hep aynı yer. diyelim 3.5.5.5 den 3.5.4.5 e geçicem. Proton klasörün proton3.5.5.5 olarak değiştirip hangisini kullanacak isem onun ismini proton olarakayarlarım. tavsiye ederim. şöyle yeni bir proton çıksa da parası neyse verip alsak. adam yılalrdır pic24 için derleyici yapıyormuş. bence ömrü yetmez.
PBP'nun, Proton varken hala yaşadığını, hatta tam gaz gittiğini ve hatta bizlerden bile ETE gibi ustaların hala PBP kullanma sebebi bunlar olmalı.
kesinlikle ETE hocanın protonu tercih etmemesinde bu tür anlaşılmaz sorunların olduğunu düşünüyorum.
Proton ile büyük programlar çok sıkıntı çıkarıyor. Ufak programlarda pek sıkıntı çıkmıyor ama program boyutu artınca protonun kendisi bile ipin ucunu kaçırıyor.
http://etepic.com/index.php/topic,911.0.html (http://etepic.com/index.php/topic,911.0.html)
Burada inventor çok sıkıntı yaşamıştı. Kendisiyle olayı çok tartıştık. Sonuç olarak belkide protoncular için önemli tecrübeler elde edildi. Ama neden bir programcı bunlarla uğraşsınki.
ETE haklı...
Alıntı Yapkesinlikle ETE hocanın protonu tercih etmemesinde bu tür anlaşılmaz sorunların olduğunu düşünüyorum.
Ben düşünmüyorum. Ete hocamız bir tercih yapmış hepsi bu. Başkasının bildirdiği sorunlara hak vermiş.
Protonda şuşu sorunlar var PBPde yok diyecek kadar Proton kullandığını ben duymadım görmedim.
Bir rica daha,
herhangi bir proton dosyasının ismini a olarak değiştirip ( a.bas ) derlemeyi deneyebilirmisiniz. Bende derleme hatası vermese de hex üretmiyor.
gerçekten enteresan
a.bas hex yaratmadı
b.bas denedim ok
edit:
ben 3.5.2.7 de denedim
protonda derleyip 16f628a ya yazdırıyorum. 2x16 lcdnin alt satırda yazılar çıkmıyor.
hiçbir değişiklik yapmadan tekrar derleyip yazdırıyorum. yine olmuyor.
tekrar derleyip yazdırıyorum
sorunsuz çalışıyor.
velhasıl protonda hatalar var. bizide arada tırmalatıyor.
bende sorun yok.compıler 3.2.5.5 ıde 1.0.4.6
Alıntı YapBir rica daha,
herhangi bir proton dosyasının ismini a olarak değiştirip ( a.bas ) derlemeyi deneyebilirmisiniz. Bende derleme hatası vermese de hex üretmiyor.
Sayın @OG hocam;
dosyayı hangi ad ile derlerseniz derleyin, Proton gecici olarak a.bas , a.hex dosyalarını oluşturuyor. Ve sizin dosyanız derlendikten sonra bu dosyaları klasörden siliyor. Bu nedenle a.bas dosyası olarak Protonda dosya oluşturup derleyemiyoruz.
Bunu görmek için programınızı kaydettiğiniz klasörü ekranın bir köşesine açın. Proton dosyanızıda ekranın diğer köşesine açın. Derleme tuşuna bastığınızda klasörünüzde geçici olarak bazı dosyaların oluştuğunu ve sonra silindiğini görebilirsiniz.
İyi çalışmalar..
Alıntı Yapdaha ne sorunlar var. mesela sağa veya sola kaydırılacak bir bayt var. kayınca kod sapıtıyor pic kitleniyor. buna durduk yerde +1 ekliyorum. bunu ekleyince sorun düzeliyor. eklenen +1 in önemi yok zaten bölüp çarpınca gidiyordu.
Programın kendi ürettiği Asm kodunu açar bakarsanız bit kaydırma işleminden sonra and işlemi yapıyor buda hataya neden oluyor.
Asm deki dosyayı kopyalayıp yapıştırın And işlemini silin düzgün çalışır.
Önemli not;Asm ile müdahale durumlarında Bank seçimlerine çok dikkat edinYoksa attığınız taş ürküttüğünüz kurbağaya değmeyebilir... ;D
mesaj birleştirme:: 10 Mart 2013, 23:10:54
Alıntı Yapprotonda derleyip 16f628a ya yazdırıyorum. 2x16 lcdnin alt satırda yazılar çıkmıyor.
hiçbir değişiklik yapmadan tekrar derleyip yazdırıyorum. yine olmuyor.tekrar derleyip yazdırıyorumsorunsuz çalışıyor.
velhasıl protonda hatalar var. bizide arada tırmalatıyor.
Register leri fazla kullanır bank 2 ye geçerseniz ,bank2 deki reg. lere değilde aynı adresteki bank1 dekilere yazıyor.
Stack overflow'a dikkat edin gosub+delay+interrupt+ekran+makro olan herşey birarada kullanılırken olabiliyor,o yüzden gosub kullanmaktan mümkün olduğunca kaçının özellikle interrut içinde.
Timer interrupt larda zamanlamadan emin deilseniz ve Asm biliyorsanız (bilmiyorsanızda azıcık öğrenin,hiç zor değil,zor diyenlere inanmayın) Asm ile yazın.
16F877A ile 16F873A ile olan programların 16F887 ve 16F886 ile olan versiyonlarında hatalar oluşuyor,bazen hiç çalışmıyor,nedenini bulamadım,belteğin verdiği kürekli programı kullanıyorum eğer lisanslı kullananlarda da aynı hatalar var ise satın almaktan vazgeçeceğim..
Alıntı yapılan: OG - 10 Mart 2013, 18:27:57Bir rica daha,
herhangi bir proton dosyasının ismini a olarak değiştirip ( a.bas ) derlemeyi deneyebilirmisiniz. Bende derleme hatası vermese de hex üretmiyor.
Aradan 6 yıl geçmiş ama cevap bulunamamış. Aslında bu bir proton bug'ı değil. Proton basic derleme yapma esnasında a.hex a.bas a.err a.cod gibi dosyalar oluşturuyor. Daha sonra sizin dosya adınıza göre hex oluşturuluyor. Ve bu a.* dosyaları siliyor. Doğal olarak a.bas ismine izin vermiyor. Derleyeceğiniz bas dosyasının olduğu klasörü açın ve klasörü gözlemleyerek derleme yapın a uzantılı dosyaları göreceksiniz.