Pic Basic Proton Stack Kullanımı

Başlatan bymrz, 12 Mart 2010, 09:26:12

bymrz

arkadaşlar hala bu sorunu  çözemedik hehalde?
Benden başka bu sorunu yaşayan yok mu hiç hâlâ ?
:)

uardal

hocam yazınızı yeni gördüm aynı şey protonda benimde başıma gelmişti, isiste simule ederken stack hatası veriyordu benim sorunum gosub komutunu kullandığımda gittiğim rutin içinde tekrar bir gosub yazmamdan kaynaklandığını gördüm,yani program yapısını değiştirdiğimde sorun şimdilik kalkmış oldu, bendeki programda 2038 word civarında 16f877 kullanıyorum ve isiste debugtan baktığımda 7 stach a kadar kullanıldığını gördüm demekki bir gosub komutundan çıkmadan diğerine girdiğimizde stack yetersiz kalıyor ve hata vermeye başlıyor.

Hattusa

s.a.
arkadaşlar protonda yazdığımız bir yazılımı derlediğimizde BANK taşması sorununu nasıl çözeceğiz? bununla ilgili bilgisi olan yokmu? yardımlarınızı bekliyorum. sizce çözüm ne olabilir?
vardım ilim meclisine eyledim talep, meğer ilim en gerideymiş illa EDEP, illa EDEP <muhyiddin Arabi K.S.>

ete

Bildiğim kadarı ile Basic de stack kullanımı gosub komutuna bağlı olarak gelinen adresin stack  içinde saklanması şeklinde oluyor.
Son giren ilk çıkar prensibine bağlı olarakda gidilen yerden return komutu görüldüğü zaman stack dan gelinen adres geri alınır ve program geldiği yere döner. Ancak bazı arkadaşların yaptığı gibi bir adrese Gosub ile gidip oradan goto ile dönerseniz oradaki stack konumunu kaybedersiniz. Yeniden bir gosub komutu icra edelirse stack'a atılan diğer adres silinmeden üzerine yazılır ve bu şekilde devam edilirse kısa zaman sonra stack şişmesi meydana gelir.
Diğer bir şişme konusu ise ard arda gosub komutu kullanmaktan kaynaklanır. Şayet 3 adet den fazla gosubu ard arda kullanırsanız yine stack şişmesi meydana gelecektir. Sebebi stack miktarının yalnızca 8 byte olmasıdır. Buradan da anlayacağınız üzere en fazla 3 gosub adresi ard arda stacka atılabilir. Fazlası olursa yimne stack taşması meydana gelecektir.
Basic,  yazım kurallarına uyduğunuz müddetçe stack ayarlamasını kendisi gerektiği şekilde yapacaktır.
Bütün bunlardan şu sonuçlar çıkıyor. Gosub ile gidilen yerenden kesinlikle Return komutu ile dönülmelidir. Bunun haricinde dönülmesi durumnda stack şişecektir.
Ard arda en fazla 3 adet gosub kullanın. Gosub kullanmak iyi bir alışkanlıktır. Ancak işin ucunuda kaçırmamak gerekir. Genelde program içinde birden fazla ancak aynı komut dizini gosub satırılarına atılmalıdır. Her şeyide gosub ile çalıştırmanında bir anlamı yoktur.

Ete

Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

Hattusa

ETE HOCAM bilgileriniz için tşekkür ederim. dikkatimden kaçmış ana programımda 5 kez ard ard gosub ile dallanmışım, sanırım hatanın sebebi anlaşıldı.
vardım ilim meclisine eyledim talep, meğer ilim en gerideymiş illa EDEP, illa EDEP <muhyiddin Arabi K.S.>

Hattusa

hocam sorunumuz şu, biz amatörüz ve bu işi mektebinde öğrenmedik, sorunlar ortaya çıktıkça öğrenmeye çalışıyoruz. bu tip bir eğitim ve öğretim ne kadar sağlıklı bilinmez ama başka çaresi yok
vardım ilim meclisine eyledim talep, meğer ilim en gerideymiş illa EDEP, illa EDEP <muhyiddin Arabi K.S.>

ete

Ne kadar sağlıklı benim halime bakın anlayın. Bende bir amatörüm ve bütün bildiklerimi eşeleyerek öğrendim.
Üstelik benim soracak kimsemde yok idi. Ama önemli olan azim ve araştırma ruhu. Bunu hafife almayın.
Bol bol araştırma ve tatbikat bu işin çözümü.

Kolay Gelsin
Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

t2

#22
Kendi kendine  öğrenmek zaman alır. Hatta gereksiz bilgiler öğrenilerek başka yönlere dallanılabilir. İnsan ne öğrenmesi gerektiğini de bilmez . Bu uzun zahmetli süreçte amerikaları yeniden keşfederek mutlu olabiliriz. Halbuki işi bilen birine sorsak veya kitabından okusak az bir bilgi,  1 haftalık tırmalamamıza bedeldir.  Asıl olan yetecek bilgiyi kısa sürede öğrenip işimize bakmaktır. 

Hattusa

s.a.
arkadaşlar yeni bir konu açmadan bir sorum olacaktı.
işlemci ile insan sesi çıkarmak istiyorum. basit 1-2 kelime "merhaba" güle güle" gibi, bunu işlemci ile direk yapmam imkansız sanırım. bunun için ne tür bir donanım gerekir (entegre şema vb) yazılımsal neler yapılabilir? bu konuda önerileriniz nelerdir?
vardım ilim meclisine eyledim talep, meğer ilim en gerideymiş illa EDEP, illa EDEP <muhyiddin Arabi K.S.>

Maxim

Alıntı yapılan: pro-TR - 20 Aralık 2010, 13:13:26
s.a.
arkadaşlar yeni bir konu açmadan bir sorum olacaktı.
işlemci ile insan sesi çıkarmak istiyorum. basit 1-2 kelime "merhaba" güle güle" gibi, bunu işlemci ile direk yapmam imkansız sanırım. bunun için ne tür bir donanım gerekir (entegre şema vb) yazılımsal neler yapılabilir? bu konuda önerileriniz nelerdir?

bunun için yeni konu açınız .