delay_ms() ve delay_us komutlarında kesmelerin durumu

Başlatan zamzam23, 20 Eylül 2010, 14:34:54

zamzam23

bu bekleme komutları işlerken kesme meydana gelirse ne olur?


zamzam23


link incelerken 5 dkm gitti.baskasının gitmesin. özeti konu sonunda verilmiş:
1- CCS C'de sadece ana programda delay komutları kullanılıyorsa (kesme fonksiyonlarında kullanılmıyorsa) delay komutu icra edilirken kesme kelirse program kesmeye gidiyor. Kesme dönüşü delay komutu kaldığı süreden devam ediyor (Bu nedenle delay komutu icra edilirken kesme meydana gelirse delay komutu ile belirtilen süre kesme düresi kadar uzar)

2- CCS C'de kesme fonksiyonları içinde delay komutları kullanılırsa ana programdaki delay komutları çalışırken herhangi bir kesme gelirse program kesmeye gitmiyor.

3- Yukarıda belirtilen 2. durumu önlemek için kesme fonksiyonu üstünde tanımlanan #use delay(clock=XXXXXXX) komutunun aynısını ana program da "void main()" komutunun üstüne de koymak gerekir. Bu işlem yapılırsa 2. durumdaki sorun ortadan kalkıyor ve delay komutları hiç bir suretle kesmeleri engellemiyor.