kesmenin kaldığı yerden devam etmesi ?

Başlatan canbulut, 11 Eylül 2011, 12:53:00

canbulut

arkadaslar s.a
bir kesme çalışıp bittikten sonra resume komutuyla kaldığı yere döndüğünü biliyorum.ben kaldığı yerden devam etsin istemiyorum tekrar anaprogramın başına dönsün istiyorum.resume yerine goto basla yazdığımda kesmeden çıkmıyormuş gibi davranıyor bir çözümü varmıdır?yardımlarınızı bekliyorum.

davul42

Enable komutundan sonra "Goto Basla" komutunu kullanmayı denedinmi?

-Hasan-

canbulut arkadaşım; ana programın başına dönebilseniz dahi bunu yapmayın. Çünkü; her kesme gelişinde, kesmeden sonra dönülecek adres stack ' a yazılır. RESUME komutu ile de, stack ' daki adres PC ' ye yüklenir, ve stack ' ın o bölgesi boşalmış olur. Eğer siz kesme geldikten sonra RESUME ile geri dönmeden başka bir yere dallanırsanız, her kesme gelişinde stack ' a adres yazıldığından, stack bir yerde dolar (16F ' lerde 8 level, 18F ' lerde 31 level) ve program kitlenir.

Bu yüzden mutlaka RESUME ' nin kullanılması gerekmektedir.

z

Kullandığın dilde islemcinin registerlerine ulaşabileceğin komutların varsa int flaglarını sıfırlarsan, kullandığın işlemcinin stack registeri dairesel çalışıyorsa istediğini yapabilirsin.

Eğer stakda dairesel adresleme yoksa stack registeride senin sıfırlaman gerekir.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

Tagli

#4
18 ve üstü seriden bir PIC kullanıyorsan POP komutu işini görebilir. Forumda daha önce konuşulmuştu.
https://www.picproje.org/index.php/topic,21571.0.html
Gökçe Tağlıoğlu