Interrupt rutini - blokaj

Başlatan z, 18 Haziran 2014, 11:18:03

z

ADC interrupt ile ilgili şu problem dikkatimi çekti.

Timer, ADC ye start veriyor. ADC int ürettiğinde int rutini içinde ADC değerlerini okuyorum.

Eğer bir başka int rutini içine uzunca bekleme yapan bir gecikme oluşturursam int rutininden çıksam bile bir süre sonra artık ADC int oluşmuyor.

Normalde kodlarımda bu tip gecikmeler yok. Programa eklemeler yaptığımda sorun olursa sorunu bulmak adına debug yaparken bu tip gecikmeli rutinler koyuyorum. Bahsettiğim olayın üstüne gitmedim. (Timer mı susuyor vs bakmadım)

Peş peşe gelen ADC interruptlar uzunca süre cevaplamadım diye daha sonra şartlar elverdiğinde ADC int rutinine girilmemesi bana mantıksız geldi.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

Icarus

Interrupt level'i ve stack'i sonsuz uzunlukta değil.

z

İyi de ADC int, bir başka int rutini işlendiği ve önceliği olmadığı için zaten cevaplanmıyor. Cevaplanmayınca da stacka atılan bir şey yok.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

kimlenbu

Hocam kaç interrupt var ve öncelikleri nelerdir ?

z

Sadece 2 int var. Öncelikleri de eşit.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

CLR

Muhtemelen flag'larden bazıları asılı kalıyordur(interupt, over, error vs. flag gibi), silinmedikleri için yeni işlemler gerçekleşmiyordur.
Knowledge and Experience are Power