Tanju Taşçılar, 6 Mayıs 2002
doc mpl004-060502
Burada önceki konularda oluşturduğumuz ve derlediğimiz spi.asm üzerinde çalışmaya
devam edeceğiz. MPLab ortamının en önemli özelliklerinden biri kaynak kodu üzerinden simulasyon
işleminin takip edilmesidir. Bu tür programların bulunmadığı zamanlarda ya bilgisayarı
terminal olarak kullanan emülatörler veya MPSim(Microchip'in eski simülasyon programı) gibi
programlar kullanmaktaydık. Bu programlarda programın satır satır veya çalışarak simülasyon veya
emülasyon işleminde komut satırından girilen komutlar kullanılırdı. Bunların sonucunda
işlemci içinde neler olup bittiğini görmek için yine bu komutlar kullanılırdı. Ancak biz
programı yazarken karşımızdaki editörde program satırları üzerinde düşünürüz. Programın
takibinin de bu düşünce akışına göre olmasını bekleriz. Önceki program ve yöntemler buna
izin vermezken bugün MPLab ile bu mümkün olmaktadır. Bunun önemi düşünülebileceğinden de
büyüktür.
Şimdi MPLab programını çalıştırıp, spi projesini yükledikten sonra işleme başlayalım.
Burada Tools Panel kullanımı işlemi büyük ölçüde kolaylaştırmaktadır. Bunun için Debug
tool panelini seçebilir veya varsa user panelimizdeki butonları kullanabiliriz. İlk olarak
kullanacağımız butonlar:

'Run', 'Halt', 'Step', 'Step Over' ve 'Reset Processor' butonları olacaktır. 'Run' butonu
programın bulunduğu yerden itibaren siz durduruncaya, varsa durma noktasına gelinceye veya
hata oluşuncaya kadar çalışmasına neden olur. 'Halt' butonu çalışmakta olan programı durdurur.
'Step' butonu programın bulunduğu satırı işler ve bir sonraki satırda durur. 'Step Over' butonu
ise alt rutinlerin içinin izlenmeden çalıştırılmasını sağlar. Eğer programın durduğu satırda
bir alt rutin çağırma komutu CALL varsa, bu rutin çalıştırılır ve program bir sonraki satırda
durur. 'Reset Processor' ise işlemcinin reset işlemini gerçekleştirir.
Şimdi 'Reset Processor' butonuna basalım. Bu durumda Şekil-1'deki duruma geliriz. İşlemci
resetten sonra bu konuma gelecektir.

Şekil-1
Bundan sonra 'Step' butonuna her basışta arka planı siyah ile belirlenen satır program
akışına göre birer birer değişecektir. Bir sonraki basışta CALL Init_All satırına, sonra
şekil-2'deki Init_All rutininin ilk satırına gelecektir.

Şekil-2
Daha sonraki her tıklamada bir satır ilerleyecek ve Init_All rutininin sonundaki RETURN
satırına gelecektir. Buradan sonraki tıklama bizi geriye, Init_All rutininin çağrıldığı
şekil-1'deki konumun dönüşündeki GOTO Main_Loop satırına getirecektir. Bundan sonraki tıklama
ile de programın ana çevrimi olan Main_Loop'un ilk satırına Şekil-3'e geliriz.

Şekil-3
Bundan sonra üç tıklama daha yapıp ilk CALL Send_Serial satırına geliriz. Burada 'Step' butonu
yerine 'Step Over' butonuna basalım. Programın Send_Serial alt rutinini takip etmediğini onu
çalıştırdıktan sonra COMF A_Reg,W satırına geldiğini görürüz.
İşleme bu şekilde devam ettiğimizde programı işlemcinin çalışmasını takip edecek şekilde
çalıştırmış oluruz.
Şimdi bulunduğumuz yerde 'Run' butonunu tıklayalım. Alttaki status satırının sarı zeminli
hale geldiğini görürüz. Bunun dışında bir hareket görülmemektedir. 'Halt' butonuna bastığımızda
program çalışmasını durdurur, durduğu yerdeki satır siyah arkalı hale gelir, status satırı
normal hale döner ve değerleri gösterir.